452 Stimmen

Wie kann man in JavaScript feststellen, ob eine Zeichenkette ein bestimmtes Zeichen enthält?

Ich habe eine Seite mit einem Textfeld, in das der Benutzer einen Registrierungscode mit 24 Zeichen (Buchstaben und Zahlen, Groß- und Kleinschreibung wird nicht berücksichtigt) eingeben soll. Ich habe maxlength um den Benutzer auf die Eingabe von 24 Zeichen zu beschränken.

Die Registrierungscodes werden normalerweise als durch Bindestriche getrennte Zeichengruppen angegeben, aber ich möchte, dass der Benutzer die Codes ohne Bindestriche eingibt.

Wie kann ich meinen JavaScript-Code ohne jQuery schreiben, um zu prüfen, ob eine gegebene Zeichenkette, die der Benutzer eingibt, keine Bindestriche enthält, oder besser noch, nur alphanumerische Zeichen enthält?

725voto

kemiller2002 Punkte 110605

Um "hallo" zu finden in your_string

if (your_string.indexOf('hello') > -1)
{
  alert("hello found inside your_string");
}

Für die Alphanumerik können Sie einen regulären Ausdruck verwenden:

http://www.regular-expressions.info/javascript.html

Alphanumerischer regulärer Ausdruck

141voto

julian libor Punkte 1363

Mit ES6 MDN-Dokumente .includes()

"FooBar".includes("oo"); // true

"FooBar".includes("foo"); // false

"FooBar".includes("oo", 2); // false

E: Wird vom IE nicht unterstützt - stattdessen können Sie den Tilde-Operator verwenden ~ ( Bitweise NOT ) mit .indexOf()

~"FooBar".indexOf("oo"); // -2 -> true

~"FooBar".indexOf("foo"); // 0 -> false

~"FooBar".indexOf("oo", 2); // 0 -> false

In Verbindung mit einer Zahl hat der Tilde-Operator folgende Wirkung ~N => -(N+1) . Verwenden Sie es mit doppelter Negation !! ( Logisch NICHT ), um die Zahlen in bools zu konvertieren:

!!~"FooBar".indexOf("oo"); // true

!!~"FooBar".indexOf("foo"); // false

!!~"FooBar".indexOf("oo", 2); // false

72voto

cdhowie Punkte 142402

Wenn Sie den Text in der Variablen foo :

if (! /^[a-zA-Z0-9]+$/.test(foo)) {
    // Validation failed
}

Damit wird getestet und sichergestellt, dass der Benutzer mindestens ein Zeichen eingegeben hat, und zwar nur alphanumerische Zeichen.

20voto

T.Todua Punkte 48569

Prüfen, ob string(Wort/Satz...) ein bestimmtes Wort/Zeichen enthält

if ( "write something here".indexOf("write som") > -1 )  { alert( "found it" );  }

15voto

Vipin Kumar Punkte 6243

ES6 enthält eine eingebaute Methode ( includes ) in Strings prototype die verwendet werden kann, um zu prüfen, ob eine Zeichenkette eine andere Zeichenkette enthält oder nicht.

var str = 'To be, or not to be, that is the question.';

console.log(str.includes('To be')); 

Das folgende Polyfill kann verwendet werden, um diese Methode in nicht unterstützten Browsern hinzuzufügen. ( Source : )

if (!String.prototype.includes) {
  String.prototype.includes = function(search, start) {
    'use strict';
    if (typeof start !== 'number') {
      start = 0;
    }

    if (start + search.length > this.length) {
      return false;
    } else {
      return this.indexOf(search, start) !== -1;
    }
  };
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X