2016-05-23 20 views
-4

Ich habe eine Anforderung, wo das System die folgenden Muster innerhalb der SSN nicht zulassen wird.Regulärer Ausdruck für SSN-Nummer

  • alle identisch: XXXXXXXXX
  • sequenziellen aufsteigende: X, X + 1, X + 2 usw., bis X + 8
  • absteigende sequentielle: X, X-1, X-2, usw. ., X-8
  • Repeating-Muster, wobei X, Y, Z gleiche Zahlen & sind:

    XYZXYZXYZ  
    XXXYYYZZZ  
    XYXYXYXYX  
    XYXYXYXYY  
    XYXYXYXYZ  
    

Dies ist nicht der 9 Dig es bezog sich auf regulären Ausdruck. Es ist ein 9-stelliges Format.

+1

Mögliches Duplikat von [SSN Regex für 123-45-6789 ODER XXX-XX-XXXX] (http://stackoverflow.com/questions/4087468/ssn-regex-for-123-45-6789-or-xxx -xx-xxxx) –

+0

@Shekhar, es ist keine Täuschung von * dass * post –

+0

Bitte nicht "so schnell wie möglich" zu Fragen hier - denken Sie daran, dass Anfragen von ** Freiwilligen ** beantwortet werden. – halfer

Antwort

0

wird dies ein XXXXXXXX und sich wiederholende Untermuster

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

oder

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

Demo

Für die aufsteigend oder absteigend diejenigen finden:

Regex ist das falsche Werkzeug für eine solche Aufgabe! Sie verwenden zu tun
Regex ist nur einsetzbar für reguläre Sprachen und Zahlen zu vergleichen ist eindeutig nicht regelmäßig, here

sehen Sie haben die Zunahme/Abnahme Prüfung manuell mit der Programmiersprache.
Wenn Sie regex verwenden möchten, müssen Sie jede Nummer fest codieren.

+0

Vielen Dank Fabian ... kann jemand bitte auf diese Abfrage reagieren .. Ich möchte auch auf Inkrement/Dekrement Werte überprüfen. –

+0

Hallo Fabian, könntest du bitte mit out \ g posten, das früher für uns arbeitet. Es funktioniert nicht mit \ g in unserem Code. –

+0

siehe Update ....... –