2015-05-14 32 views
1

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

我该如何预防?

+1

但不包括'[]'对我来说:看看[这里](https://www.regex101.com/r/vO2iE8/1) – Zereges

+0

使用锚'^[a-zA-Z0-9] {9,18} $' – anubhava

回答

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 
+0

感谢它现在的工作。 – lovin

+0

@lovin你应该接受这个答案。 – gfullam

相关问题