普通正则表达式的字母和数字问题

时间:2015-05-14 17:22:39

标签: regex

我正在使用以下正则表达式 - [a-zA-Z0-9]{9,18},这意味着我可以使用最小长度为9且最大长度为18的字母和数字。它不应该使用特殊字符。 它需要ADV0098890等值,但它也会使用ADV0098890[],这是错误的。

我该如何防止这种情况?

1 个答案:

答案 0 :(得分:1)

你的正则表达式只匹配字符串的第一部分。尝试在^$中包装模式:

>> !!('ADV0098890'   =~ /[a-zA-Z0-9]{9,18}/)
=> true
>> !!('ADV0098890[]' =~ /[a-zA-Z0-9]{9,18}/)
=> true
>> !!('ADV0098890'   =~ /^[a-zA-Z0-9]{9,18}$/)
=> true
>> !!('ADV0098890[]' =~ /^[a-zA-Z0-9]{9,18}$/)
=> false