JavaScript正则表达式黑名单组合我有一个简单的社会安全号码的正则表达式^\(?\d{3}\)?[- ]?\d{2}[- ]?\d{4}$
社会安全号码验证
我想黑名单号码的一些组合为三个组号码。具体而言,我想完成以下3个条件。
- 前3个位数不能为000,666或大于899
- 第四和第五个数字也不能00
- 最后四位数字不能0000
JavaScript正则表达式黑名单组合我有一个简单的社会安全号码的正则表达式^\(?\d{3}\)?[- ]?\d{2}[- ]?\d{4}$
社会安全号码验证
我想黑名单号码的一些组合为三个组号码。具体而言,我想完成以下3个条件。
if (!ssn.match(/^((000|666|9\d{2})-\d{2}-\d{4}|\d{3}-00-\d{4}|\d{3}-\d{2}-0{4})$/)) {
...
}
其中ssn
是包含SSN的字符串。
这个正则表达式有3个部分,每个部分对应于你的条件。
(000|666|9\d{2})-\d{2}-\d{4}
匹配任何SSN开始000
,666
,或9XX
\d{3}-00-\d{4}
匹配任何SSN与00
在中间\d{3}-\d{2}-0{4}
匹配任何SSN与0000
到底的^
在开始时和$
结尾强制完全匹配的ssn
。如果您搜索的是子字符串,则可以省略这些。
的(
和)
与|
一起分组运算符允许任何的|
分隔的选项相匹配。
如果SSN不匹配任何三个,那么它通过你的条件
Previous answer是相当正确的,但正则表达式本身可能更多方式simplier:
/^(?:000|666|9\d\d)|^\d{3}-?00|0{4}$/
我找到了好正则表达式here
/^(?!000)(?!666)(?!9)\d{3}([- ]?)(?!00)\d{2}\1(?!0000)\d{4}$/