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

Regex 字母和数字的通用正则表达式问题,regex,Regex,我使用下面的正则表达式-[a-zA-Z0-9]{9,18},这意味着我可以使用最小长度为9、最大长度为18的字母和数字。它不应该使用特殊字符。 它采用的值类似于ADV0098890等,但它也采用了ADV0098890[],这是错误的 如何防止这种情况发生?您的正则表达式只匹配字符串的第一部分。尝试在^$中包装模式: >> !!('ADV0098890' =~ /[a-zA-Z0-9]{9,18}/) => true >> !!('ADV0098890[]' =~

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


如何防止这种情况发生?

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

>> !!('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

对我来说,它不包括
[]
:查看使用锚
^[a-zA-Z0-9]{9,18}$