用于社会保险号码验证的Javascript正则表达式黑名单组合
我有一个简单的社会保险号码regex用于社会保险号码验证的Javascript正则表达式黑名单组合,javascript,regex,Javascript,Regex,我有一个简单的社会保险号码regex^\(?\d{3}\)?[-]?\d{2}[-]?\d{4}$ 我想为这三组数字中的每一组列出一些数字的组合。具体来说,我想实现以下3个条件 前3位数字不能为000、666或大于899 第四位和第五位数字不能是00 最后4位数字不能是0000 其中ssn是包含ssn的字符串 此正则表达式分为3个部分,每个部分对应于您的条件 (000 | 666 | 9\d{2})-\d{2}-\d{4}匹配任何以000、666或9XX开头的SSN \d{3}-00-\d{4}
^\(?\d{3}\)?[-]?\d{2}[-]?\d{4}$
我想为这三组数字中的每一组列出一些数字的组合。具体来说,我想实现以下3个条件
ssn
是包含ssn的字符串
此正则表达式分为3个部分,每个部分对应于您的条件
(000 | 666 | 9\d{2})-\d{2}-\d{4}
匹配任何以000
、666
或9XX
开头的SSN\d{3}-00-\d{4}
匹配中间有00
的任何SSN\d{3}-\d{2}-0{4}
将任何SSN与最后的0000
匹配^
和结尾的$
强制执行ssn
的精确匹配。如果要作为子字符串进行搜索,可以忽略这些
(
和)
分组运算符与|
结合使用,允许任何|
分隔选项匹配
如果SSN不匹配这三个条件中的任何一个,那么它通过了您的条件是非常正确的,但是正则表达式本身可能要简单得多:
/^(?:000|666|9\d\d)|^\d{3}-?00|0{4}$/
我找到了一个好的正则表达式
/^(?000)(?!666)(?!9)\d{3}([-]?)(?!00)\d{2}\1(?0000)\d{4}$/
/^(?:000|666|9\d\d)|^\d{3}-?00|0{4}$/