Es wird versucht, die Eingabe anhand eines regulären Ausdrucks zu überprüfen.
Das Feld sollte nur alphanumerische Zeichen, Bindestriche und Unterstriche zulassen und KEINE Leerzeichen zulassen.
Der folgende Code erlaubt jedoch Leerzeichen.
Was vermisse ich?
var regexp = /^[a-zA-Z0-9\-\_]$/;
var check = "checkme";
if (check.search(regexp) == -1)
{ alert('invalid'); }
else
{ alert('valid'); }
javascript
regex
Tom
quelle
quelle
Antworten:
Nein, das tut es nicht. Es stimmt jedoch nur mit Eingaben mit einer Länge von 1 überein. Für Eingaben mit einer Länge größer oder gleich 1 benötigen Sie
+
Folgendes, um der Zeichenklasse zu folgen:Beachten Sie, dass weder die
-
(in diesem Fall) noch die_
Notwendigkeit entkommen.quelle
Sie sollten nicht String.match verwenden, sondern RegExp.prototype.test (dh
/abc/.test("abcd")
) anstelle von String.search (), wenn Sie nur an einem booleschen Wert interessiert sind. Sie müssen auch Ihre Charakterklasse wiederholen, wie in der Antwort von Andy E erklärt:quelle
RegExp.prototype.test
Methode verwenden, wenn Sie nur an einem Booleschen Wert interessiert sind.Diese Syntax ist etwas prägnanter als die Antworten, die bis zu diesem Punkt veröffentlicht wurden, und erzielt das gleiche Ergebnis:
quelle
Habe dummen Fehler. Also poste hier, wenn jemand es nützlich findet
-\._
- bedeutet Bindestrich, Punkt und Unterstrich\.-_
- bedeutet, dass alle Zeichen im Bereich von Punkt bis Unterstrich liegenquelle
Entkomme nicht dem Unterstrich. Könnte etwas Verrücktheit verursachen.
quelle
\_
, Probleme in JavaScript oder einem anderen regulären Ausdruck zu verursachen.Versuche dies
Sollte Unterstriche und Bindestriche zulassen
quelle
versuchen Sie dieses, es funktioniert gut für mich.
quelle