/ / Auf alle Zeichen oder alle Zahlen beschränken? - Javascript, Regex, String, Ausdruck

Auf alle Zeichen oder alle Zahlen beschränken? - Javascript, Regex, String, Ausdruck

Sagen wir, ich möchte einen Benutzer auf die Eingabe eines Vororts oder einer Postleitzahl beschränken, aber nicht auf beides.

Ich will "Vorort" passieren, da es alle Alpha-Zeichen ist, möchte ich "1234" übergeben, da es alle numerisch ist, aber ich kann nicht herausfinden, wie man und entweder oder innerhalb einer Regex abbildet.

Hier ist was ich versucht habe.

var string = "word";

var resultA = !(string.match(/^[a-z|0-9]+$/i));

alert(resultA);

Also, ich brauche:

"word"  => true
"1234"  => true
"word word" => true,
"word 123" => false,
"word2" => false

Wenn es durch den Ausdruck läuft.

Antworten:

3 für die Antwort № 1

Sie können diese Regex verwenden, um Alphabete oder Ziffern in der Eingabe zu finden:

var resultA = /^([A-Za-z]+|[0-9]+)$/.test(string);

0 für die Antwort № 2

Wenn Entwickler fragen, wie sie ihre regulären Ausdrücke überkompli- zieren können, empfehle ich normalerweise, dass sie einen Schritt zurückgehen und nur etwas Code schreiben und Regex für die Teile einwerfen, die sie gut formalisieren können.

Sie haben gefragt, wie Sie feststellen können, ob eine Zeichenfolge vollständig alphanumerisch oder vollständig nummeriert ist.

Ein Regex zur Erkennung aller alphabetischen Zeichen ist

/^[a-z]*$/i

Eine Regex zur Erkennung aller numerischen Zeichen ist

/^d*$/

Sie zu kombinieren ist einfach:

function valid(str) {
return /^[a-z]*$/i.test(str) || /^d*$/.test(str);
}

Nun, wenn Sie alles zu einem einzigen regulären Ausdruck kombinieren möchten, müssen Sie nur die verwenden | Regulärer Ausdruck:

function valid(str) {
return /^[a-z]*$|^d*$/i.test(str);
}

Dies kann natürlich vereinfacht werden, wenn Sie einen Gruppierungsoperator verwenden:

/^([a-z]*|d*)$/i

Mach es nicht einfacher. Es ist einfacher zu lesen und leichter zu verstehenreguläre Ausdrücke, wenn sie kürzer sind und einfachere Muster aufweisen. Verwenden Sie mehr kleine reguläre Ausdrücke als weniger längere reguläre Ausdrücke, auch wenn der Code kürzer sein könnte. Sie werden sich in der Zukunft für die leichtere Verständlichkeit des Codes bedanken.