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