RegExp.prototype.test()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Die test()
Methode von Instanzen des RegExp
führt eine Suche mit diesem regulären Ausdruck durch, um eine Übereinstimmung zwischen einem regulären Ausdruck und einem angegebenen String zu finden. Gibt true
zurück, wenn es eine Übereinstimmung gibt, andernfalls false
.
JavaScript RegExp
Objekte sind zustandsbehaftet, wenn die global
oder sticky
Flags gesetzt sind (z.B. /foo/g
oder /foo/y
). Sie speichern einen lastIndex
vom vorherigen Treffer. Mit dieser internen Verwendung kann test()
verwendet werden, um über mehrere Treffer in einem Textstring zu iterieren (mit Erfassungsgruppen).
Probieren Sie es aus
const str = "table football";
const regex = /fo+/;
const globalRegex = /fo+/g;
console.log(regex.test(str));
// Expected output: true
console.log(globalRegex.lastIndex);
// Expected output: 0
console.log(globalRegex.test(str));
// Expected output: true
console.log(globalRegex.lastIndex);
// Expected output: 9
console.log(globalRegex.test(str));
// Expected output: false
Syntax
test(str)
Parameter
str
-
Der String, gegen den der reguläre Ausdruck abgeglichen werden soll. Alle Werte werden in Strings umgewandelt, daher verursacht das Weglassen oder Übergeben von
undefined
, dasstest()
nach dem String"undefined"
sucht, was selten gewünscht ist.
Rückgabewert
true
, wenn es eine Übereinstimmung zwischen dem regulären Ausdruck und dem String str
gibt. Andernfalls false
.
Beschreibung
Verwenden Sie test()
, wann immer Sie wissen möchten, ob ein Muster in einem String gefunden wird. test()
gibt einen Booleschen Wert zurück, im Gegensatz zur String.prototype.search()
Methode (die den Index eines Treffers zurückgibt, oder -1
, wenn nicht gefunden).
Um mehr Informationen zu erhalten (aber mit langsamerer Ausführung), verwenden Sie die exec()
Methode. (Dies ist ähnlich der String.prototype.match()
Methode.)
Wie bei exec()
(oder in Kombination mit dieser) wird test()
, wenn es mehrmals auf der gleichen Instanz eines globalen regulären Ausdrucks aufgerufen wird, über den vorherigen Treffer hinausgehen.
Beispiele
Verwendung von test()
Dieses Beispiel testet, ob "hello"
ganz am Anfang eines Strings enthalten ist, und gibt ein boolesches Ergebnis zurück.
const str = "hello world!";
const result = /^hello/.test(str);
console.log(result); // true
Das folgende Beispiel protokolliert eine Nachricht, die vom Erfolg des Tests abhängt:
function testInput(re, str) {
const midString = re.test(str) ? "contains" : "does not contain";
console.log(`${str} ${midString} ${re.source}`);
}
Verwendung von test() bei einem Regex mit dem "global"-Flag
Wenn ein Regex das global-Flag gesetzt hat, wird test()
den lastIndex
des Regex voranschreiten. (RegExp.prototype.exec()
schreitet auch die lastIndex
Eigenschaft voran.)
Weitere Aufrufe von test(str)
setzen die Suche in str
von lastIndex
aus fort. Die lastIndex
Eigenschaft wird weiter ansteigen, jedes Mal wenn test()
true
zurückgibt.
Hinweis:
Solange test()
true
zurückgibt,
wird lastIndex
nicht zurückgesetzt—auch nicht, wenn ein anderer String getestet wird!
Wenn test()
false
zurückgibt, wird die lastIndex
Eigenschaft des aufrufenden Regex auf 0
zurückgesetzt.
Das folgende Beispiel zeigt dieses Verhalten:
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)
Spezifikationen
Specification |
---|
ECMAScript® 2026 Language Specification # sec-regexp.prototype.test |