2016-05-23 55 views
-4

我有一個要求,系統將不允許SSN內的以下模式。SSN編號的正則表達式

  • 所有相同:XXXXXXXXX
  • 升序順序:X,X + 1,X + 2,等等,X + 8
  • 降序順序:X,X-1,X-2,等,以X-8
  • 重複圖案,其中X,Y,& Z爲相同的數字:

    XYZXYZXYZ  
    XXXYYYZZZ  
    XYXYXYXYX  
    XYXYXYXYY  
    XYXYXYXYZ  
    

這不是9挖它涉及正則表達式。這是一個9位數字格式。

+1

[SSN Regex for 123-45-6789 OR XXX-XX-XXXX]可能的重複(http://stackoverflow.com/questions/4087468/ssn-regex-for-123-45-6789-or-xxx -xx-xxxx) –

+0

@Shekhar,它不是* *的後綴*後 –

+0

請不要在這裏添加「儘快」任何問題 - 請記住,查詢是由**志願者**回答。 – halfer

回答

0

此人會發現XXXXXXXX並重復子圖樣

^(?=\d{9})(?:(\d{1,8})\1*|(\d\d)\2*\d|((\d)+\g{-1}{2}){3})$ 

^(?=\d{9})(?:(\d{1,8})\1*|(\d\d)\2*\d|(\d)+\3\3(\d)\4\4(\d)\5\5)$ 

Demo

對於升序或降序的:

正則表達式是這樣的任務的錯誤工具!
正則表達式是唯一可用的正規語言和比較數字顯然是不正規,看到here

你必須與你所使用的編程語言做手工遞增/遞減檢查。
如果你想使用正則表達式,你必須硬編碼每個數字。

+0

謝謝fabian ...可以任何人請回應該查詢..我想檢查遞增/遞減值以及。 –

+0

嗨法比安,你可以請發佈出\ g這是爲我們提前工作。它不能在我們的代碼中使用\ g。 –

+0

查看更新....... –