我正在尝试为遵循此规则的模型字段构建正则表达式:
有效示例:
US333
FR52389000
无效的例子:
11111
T11
我以为我找到了正确的正则表达式:
/[a-zA-Z][a-zA-Z]\d*/
但使用http://rubular.com/对其进行验证似乎验证了RR444kjj
有人可以指出错误吗?
答案 0 :(得分:6)
您需要使用限制量词\d
和正确的锚点。
/\A[[:alpha:]]{2}\d{0,13}\z/
请参阅regex demo。
\A
- 字符串的开头(注意^
锚点与Ruby正则表达式中行的开头匹配)[[:alpha:]]{2}
- 2个字母(为了确保您只允许使用ASCII字母,请使用[a-zA-Z]{2}
)\d{0,13}
- 0到13位\z
- 字符串结尾(请注意$
锚点与Ruby正则表达式中的行尾相匹配)。