Signatur
Beschreibung
Die Methode test() von RegExp-Instanzen führt mit diesem regulären Ausdruck eine Suche nach einer Übereinstimmung zwischen dem regulären Ausdruck und einem angegebenen String aus. Gibt true zurück, wenn eine Übereinstimmung vorliegt; andernfalls false.
JavaScript-RegExp-Objekte sind zustandsbehaftet, wenn die Flags global oder sticky gesetzt sind (z. B. /foo/g oder /foo/y). Sie speichern einen lastIndex aus dem vorherigen Treffer. Intern kann test() damit genutzt werden, um über mehrere Treffer in einem Text zu iterieren (mit Capture-Gruppen).
Beschreibung
Verwenden Sie test(), wenn Sie wissen möchten, ob ein Muster in einem String gefunden wird. test() gibt einen Boolean zurück, im Gegensatz zur Methode String.prototype.search() (die den Index eines Treffers oder -1 zurückgibt, wenn nichts gefunden wurde).
Um mehr Informationen zu erhalten (aber mit langsamerer Ausführung), verwenden Sie die Methode exec(). (Dies ist ähnlich zur Methode String.prototype.match().)
Wie bei exec() (oder in Kombination damit) wird test(), wenn es mehrfach auf derselben globalen Regex-Instanz aufgerufen wird, über den vorherigen Treffer hinaus fortschreiten.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $str Pflicht | string | — | Der String, gegen den der reguläre Ausdruck abgeglichen wird. Alle Werte werden in Strings umgewandelt (coerced to strings), sodass ein Weglassen oder Übergeben von undefined dazu führt, dass test() nach dem String "undefined" sucht, was selten das gewünschte Verhalten ist. |
Rückgabewert
true, wenn eine Übereinstimmung zwischen dem regulären Ausdruck und dem String str vorliegt. Andernfalls false.Beispiele
test() verwenden
const str = "hello world!";
const result = /^hello/.test(str);
console.log(result); // true
Meldung abhängig vom Testergebnis
function testInput(re, str) {
const midString = re.test(str) ? "contains" : "does not contain";
console.log(`${str} ${midString} ${re.source}`);
}
test() auf einer Regex mit dem "global"-Flag
const regex = /foo/g; // the "global" flag is set
// regex.lastIndex is at 0
regex.test("foo"); // true
// regex.lastIndex is now at 3
regex.test("foo"); // false
// regex.lastIndex is at 0
regex.test("barfoo"); // true
// regex.lastIndex is at 6
regex.test("foobar"); // false
// regex.lastIndex is at 0
regex.test("foobarfoo"); // true
// regex.lastIndex is at 3
regex.test("foobarfoo"); // true
// regex.lastIndex is at 9
regex.test("foobarfoo"); // false
// regex.lastIndex is at 0
// (...and so on)
// Wichtig · Fallstricke
test() true zurückgibt, wird lastIndex nicht zurückgesetzt – auch dann nicht, wenn ein anderer String getestet wird! Wenn test() false zurückgibt, wird die Eigenschaft lastIndex der aufrufenden Regex auf 0 zurückgesetzt.