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}$/