Javascript 护照正则表达式
我正在尝试对passport number执行正则表达式验证Javascript 护照正则表达式,javascript,regex,Javascript,Regex,我正在尝试对passport number执行正则表达式验证 长度:5-20个字符的字母数字 允许的字符:a-z,a-z,0-9(不区分大小写) 不能仅包含1个数字或字符,重复 示例:(我期望看到的) Z1234aZ-假/“Z”重复 aVBNa1-错误//“a”重复 ZXCVB123-正确 12zv-假//长度4 我的正则表达式:/^(..{2,}[A-Za-z0-9]{5,20}$/,但它不起作用 如何匹配所有符号都不重复的情况?我想也许您可以使用: ^(?:([A-Z\d])(?!.*
如何匹配所有符号都不重复的情况?我想也许您可以使用:
^(?:([A-Z\d])(?!.*\1)){5,20}$
请看一篇在线文章。使用不区分大小写的匹配意味着:
-起锚线^
-打开非捕获组:(?:
-从类中捕获单个字符([A-Z\d])
-使用对第一个捕获组的反向引用来防止再次出现匹配的字符(?!.*\1)
-关闭非捕获组并匹配5-20次){5,20}
-端线锚$
不确定我是否读对了,但如果您需要至少两个数字和至少到alpha字符,则可能会添加两个正lookahead:
^(?=.*\d.*\d)(?=.*[A-Z].*[A-Z])(?:([A-Z\d])(?!.*\1)){5,20}$
我在想也许你可以用:
^(?:([A-Z\d])(?!.*\1)){5,20}$
请看一篇在线文章。使用不区分大小写的匹配意味着:
-起锚线^
-打开非捕获组:(?:
-从类中捕获单个字符([A-Z\d])
-使用对第一个捕获组的反向引用来防止再次出现匹配的字符(?!.*\1)
-关闭非捕获组并匹配5-20次){5,20}
-端线锚$
不确定我是否读对了,但如果您需要至少两个数字和至少到alpha字符,则可能会添加两个正lookahead:
^(?=.*\d.*\d)(?=.*[A-Z].*[A-Z])(?:([A-Z\d])(?!.*\1)){5,20}$
你可以试试这个
^(?!^0+$)[a-zA-Z0-9]{3,20}$
或
^[A-PR-WYa-PR-wy][1-9]\d\s?\d{4}[1-9]$你可以试试这个
^(?!^0+$)[a-zA-Z0-9]{3,20}$
或
^[A-PR-WYa-PR-wy][1-9]\d\s?\d{4}[1-9]$