2015-11-30 60 views
0

JavaScript正則表達式黑名單組合我有一個簡單的社會安全號碼的正則表達式^\(?\d{3}\)?[- ]?\d{2}[- ]?\d{4}$社會安全號碼驗證

我想黑名單號碼的一些組合爲三個組號碼。具體而言,我想完成以下3個條件。

  1. 前3個位數不能爲000,666或大於899
  2. 第四和第五個數字也不能00
  3. 最後四位數字不能0000

回答

0
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個部分,每個部分對應於你的條件。

  1. (000|666|9\d{2})-\d{2}-\d{4}匹配任何SSN開始000666,或9XX
  2. \d{3}-00-\d{4}匹配任何SSN與00在中間
  3. \d{3}-\d{2}-0{4}匹配任何SSN與0000到底

^在開始時和$結尾強制完全匹配的ssn。如果您搜索的是子字符串,則可以省略這些。

()|一起分組運算符允許任何的|分隔的選項相匹配。

如果SSN不匹配任何三個,那麼它通過你的條件

0

Previous answer是相當正確的,但正則表達式本身可能更多方式simplier:

/^(?:000|666|9\d\d)|^\d{3}-?00|0{4}$/ 
0

我找到了好正則表達式here

/^(?!000)(?!666)(?!9)\d{3}([- ]?)(?!00)\d{2}\1(?!0000)\d{4}$/