2015-05-14 29 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

相關問題