2016-04-28 2 views
0

Ich habe durch das Regex-Wiki und ein paar andere Regex-Tutorials geglitten, wie man eine OR-Anweisung in einer Regex richtig schreibt, aber bisher kein Glück. Grundsätzlich prüfe ich einen String wie diesen (Beispiel):Regex mit OR-Anweisung, um ähnliche Fälle zu überprüfen

if (val === 7) und if (7 === val).

Die aktuelle Regex übergibt erfolgreich jeden Benutzercode mit der ersten Zeichenfolge , aber die zweite Zeichenfolge fehlschlägt.

Die ursprüngliche Regex sieht aus wie solche:

/val\\s*===\\s*\\d+/g

My work-in-progress Revision des Regex wie folgt aussieht:

/(val|s*)\\s*===\\(s*|val)\\d+/g

Im Grunde war ich versuche, eine schließen OR-Anweisung in der Regex, um beide Fälle zu überprüfen, aber ich bin ratlos. Kann mir jemand in die richtige Richtung zeigen oder mir einen Rat geben? Vielen Dank im Voraus.

+0

Das Rohrsymbol | kann als die oder Anweisung zwischen den Gruppen verwendet werden – jeff

+1

Wie wäre es mit '/ (val \\ s * === \\ s * \\ d +) | (\\ d + \\ s * === \\ s * val)/g' – mido

+0

@mido Das war es! Ich wusste nicht, dass ich so viel "Regex" zwischen die Pipe stecken könnte. Vielen Dank. – Jose

Antwort

2

in Kommentaren wie gesagt, könnte man das Problem lösen, indem sie:

/(val\\s*===\\s*\\d+)|(\\d+\\s*===\\s*val)/g 

die | Kontrollen zwischen einer der beiden passenden Gruppen.

Verwandte Themen