Ich habe eine Seite mit einem Textfeld, auf der ein Benutzer einen Registrierungscode mit 24 Zeichen (Buchstaben und Zahlen, Groß- und Kleinschreibung beachten) eingeben soll. Früher habe ich maxlength
den Benutzer auf die Eingabe von 24 Zeichen beschränkt.
Die Registrierungscodes werden normalerweise als durch Bindestriche getrennte Zeichengruppen angegeben. Ich möchte jedoch, dass der Benutzer die Codes ohne Bindestriche eingibt.
Wie kann ich meinen JavaScript-Code ohne jQuery schreiben, um zu überprüfen, ob eine bestimmte Zeichenfolge, die der Benutzer eingibt, keine Bindestriche enthält oder besser noch alphanumerische Zeichen enthält?
javascript
string
Vivian River
quelle
quelle
inArray
.Antworten:
Um "Hallo" in zu finden
your_string
Für die alphanumerische Zahl können Sie einen regulären Ausdruck verwenden:
http://www.regular-expressions.info/javascript.html
Alpha Numeric Regular Expression
quelle
/hello/g.test(your_string)
. Während indexOf funktioniert, erzählt ein Regex-Test meiner Meinung nach eine bessere Geschichte darüber, was Sie erreichen möchten. Wenn ich versuche, eine Zeichenfolge in einer Zeichenfolge zu finden, ist der Index irrelevant.Mit ES6 .includes ()
E: Wird vom IE nicht unterstützt - stattdessen können Sie den Tilde-Opperator
~
( Bitwise NOT ) mit .indexOf () verwenden.Wird der Tilde-Operator mit einer Zahl verwendet, ist dies effektiv
~N => -(N+1)
. Verwenden Sie es mit doppelter Negation!!
( logisch NICHT ), um die Zahlen in Bools umzuwandeln:quelle
Wenn Sie den Text in Variable haben
foo
:Dadurch wird getestet und sichergestellt, dass der Benutzer mindestens ein Zeichen und nur alphanumerische Zeichen eingegeben hat .
quelle
Überprüfen Sie, ob die Zeichenfolge (Wort / Satz ...) ein bestimmtes Wort / Zeichen enthält
quelle
ES6 enthält die eingebaute Methode (
includes
) inprototype
Strings, mit der überprüft werden kann, ob der String einen anderen String enthält oder nicht.Die folgende Polyfüllung kann verwendet werden, um diese Methode in nicht unterstützten Browsern hinzuzufügen. ( Quelle )
quelle
Verwenden Sie dazu einen regulären Ausdruck.
quelle
Sie denken alle zu viel nach. Verwenden Sie einfach einen einfachen regulären Ausdruck, es ist Ihr bester Freund.
Regex in 5 Minuten lernen?
quelle
if ( string1.test(regex) ) { alert("He likes pizza!"); }
var regex = /^[a-z0-9]+$/i
regex.test(string1)
regex.test(str)
. (str.match(regex)
ist ähnlich, gibt aber keinen BooleschenWenn Sie am Anfang oder am Ende der Zeichenfolge nach Zeichen suchen, können Sie auch
startsWith
und verwendenendsWith
quelle
quelle
So testen Sie nur auf alphanumerische Zeichen:
Die Regex prüft auf 1 oder mehr (+) des Zeichensatzes 0-9, AZ und az, beginnend mit dem Beginn der Eingabe (^) und endend mit dem Ende der Eingabe ($).
quelle
Kevins Antwort ist korrekt, erfordert jedoch eine "magische" Nummer wie folgt:
In diesem Fall müssen Sie wissen, dass -1 für nicht gefunden steht . Ich denke, dass eine etwas bessere Version wäre:
quelle
indexOf()
kehren -1 , wenn die Zeichenfolge nicht gefunden wird. Es ist also kaum magischer als die Verwendung von 0 .Versuche dies:
Hier ist ein Beispiel: http://jsfiddle.net/oliverni/cb8xw/
quelle
Die Suchfunktion von String ist ebenfalls nützlich. Es sucht nach einem Zeichen sowie einer Unterzeichenfolge in einer bestimmten Zeichenfolge.
'apple'.search('pl')
kehrt zurück2
'apple'.search('x')
Rückkehr-1
quelle
Wenn Sie Daten aus dem DOM lesen, wie z. B. das Tag ap oder h1, möchten Sie zwei native JavaScript-Funktionen verwenden. Dies ist recht einfach, aber auf es6 beschränkt, zumindest für die Lösung, die ich bereitstellen werde. Ich werde alle p-Tags im DOM durchsuchen. Wenn der Text ein "T" enthält, wird der gesamte Absatz entfernt. Ich hoffe, dieses kleine Beispiel hilft jemandem!
HTML
JS
quelle
Funktioniert perfekt. Dieses Beispiel wird viel helfen.
quelle
Demonstration: Die include () -Methode findet das "enthält" -Zeichen in der gesamten Zeichenfolge und gibt ein true zurück.
quelle
Überprüfen Sie, ob die Zeichenfolge alphanumerisch oder alphanumerisch ist + einige zulässige Zeichen
Die schnellste alphanumerische Methode ist wahrscheinlich wie folgt: Bester Weg zur alphanumerischen Prüfung in Javascript, da sie direkt mit Nummernkreisen arbeitet.
Dann, ein paar andere zusätzlichen Zeichen ermöglichen sanely können wir sie nur setzen in einem
Set
für schnelles Nachschlagen.Ich glaube, dass diese Implementierung Ersatzpaare korrekt korrekt behandelt.
GitHub stromaufwärts .
Getestet in Node.js v10.15.1.
quelle