Ich muss feststellen, ob eine Zeichenfolge zwei oder mehr aufeinanderfolgende Alpha-Zeichen enthält. Zwei oder mehr [a-zA-Z]
nebeneinander. Beispiel:
"ab" -> valid
"a1" -> invalid
"a b" -> invalid
"a"-> invalid
"a ab" -> valid
"11" -> invalid
Antworten:
[a-zA-Z] {2,} funktioniert nicht für zwei oder mehr identische aufeinanderfolgende Zeichen. Dazu sollten Sie einen beliebigen Charakter erfassen und die Erfassung dann wie folgt wiederholen:
(.) \ 1
Die Klammer erfasst die. Dies stellt ein beliebiges Zeichen dar und \ 1 ist das Ergebnis der Erfassung - im Grunde genommen wird nach einer fortlaufenden Wiederholung dieses Zeichens gesucht. Wenn Sie genau wissen möchten, welche Zeichen, die Sie finden möchten, nacheinander identisch sind, ersetzen Sie einfach das "beliebige Zeichen" durch eine Zeichenklasse ...
([a-zA-Z]) \ 1
Findet einen aufeinanderfolgenden sich wiederholenden Klein- oder Großbuchstaben. Stimmt mit "abbc123" und nicht mit "abc1223" überein. Um ein Leerzeichen zwischen ihnen (dh ein ab) zuzulassen, fügen Sie in den regulären Ausdruck zwischen dem erfassten Zeichen und der Wiederholung ein optionales Leerzeichen ein ...
([az] AZ]) \ s? \ 1
Ich bin mir ziemlich sicher, dass Sie einfach [Az] anstelle von [a-zA-Z] verwenden können, um kleine und große Alpha-Zeichen zu erhalten. Http://www.w3schools.com/jsref/jsref_obj_regexp.asp
[A-z]
passt mehr als Buchstaben. Insbesondere werden auch eckige Klammern, Backslashes, Carets, Unterstriche und Backticks verwendet.
Z
und a
würden (fälschlicherweise) in ein solches Muster aufgenommen. Ich stimme der Empfehlung zu: Verwenden Sie keine w3schools! Es hat viele subtil schlechte Informationen wie diese.
[65-90]
wird übereinstimmen 5
- 9
(was auch beinhaltet 6
) und 0
!
{2}
ohne das Komma sollte auch funktionieren, oder?