9个字符在开头需要2个字母,即ab1234567和10个字符需要所有数字i,e 1234567890.如何使用正则表达式执行此操作?
这是我尝试过的.
/^[a-zA-Z]{2}[\d]{7}|[\d]{10}$/
Run Code Online (Sandbox Code Playgroud)
这似乎不起作用.非常感谢你的帮助.
nnn*_*nnn 10
在|您的正则表达式允许它匹配以下两种可能性:
^[a-zA-Z]{2}[\d]{7}
[\d]{10}$
Run Code Online (Sandbox Code Playgroud)
也就是说,字符串的开头然后是2个字母和7个数字后跟任何东西,或者后面跟着10个数字和字符串结尾的任何内容.试试这个:
/^([a-zA-Z]{2}\d{7}|\d{10})$/
Run Code Online (Sandbox Code Playgroud)
(另请注意,我已经删除了[]各自的内容\d- 没有必要在其中只包含一个字符的字符类.)
问题是^只应用第一个选项,而$唯一适用于第二个选项.
试试这个:
/^(?:[a-z]{2}\d{7}|\d{10})$/i
Run Code Online (Sandbox Code Playgroud)