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 RegExp-Instanzen 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 eine Übereinstimmung vorliegt, andernfalls false.

JavaScript-RegExp-Objekte sind zustandsbehaftet, wenn sie die global- oder sticky-Flags gesetzt haben (z. B. /foo/g oder /foo/y). Sie speichern einen lastIndex aus der vorherigen Übereinstimmung. Intern kann test() verwendet werden, um über mehrere Übereinstimmungen in einem Textstring (mit Erfassungsgruppen) zu iterieren.

Probieren Sie es aus

const str = "table football";

const regex = new RegExp("foo*");
const globalRegex = new RegExp("foo*", "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

js
test(str)

Parameter

str

Der String, gegen den der reguläre Ausdruck abgeglichen wird. Alle Werte werden zu Strings konvertiert. Wenn er ausgelassen wird oder undefined übergeben wird, sucht test() nach dem String "undefined", was selten gewünscht ist.

Rückgabewert

true, wenn eine Übereinstimmung zwischen dem regulären Ausdruck und dem String str gefunden wird. Andernfalls false.

Beschreibung

Verwenden Sie test(), wann immer Sie wissen möchten, ob ein Muster in einem String gefunden wird. test() gibt einen Boolean zurück, im Gegensatz zur String.prototype.search()-Methode (die den Index einer Übereinstimmung oder -1 zurückgibt, falls keine gefunden wurde).

Um mehr Informationen zu erhalten (aber mit langsamerer Ausführung), verwenden Sie die exec()-Methode. (Dies ist vergleichbar mit der String.prototype.match()-Methode.)

Wie bei exec() (oder in Kombination damit) wird test(), wenn es mehrfach auf derselben globalen Instanz eines regulären Ausdrucks aufgerufen wird, über die vorherige Übereinstimmung hinaus fortschreiten.

Beispiele

Verwendung von test()

Dieses Beispiel überprüft, ob "hello" sich direkt am Anfang eines Strings befindet und gibt ein Boolean-Ergebnis zurück.

js
const str = "hello world!";
const result = /^hello/.test(str);

console.log(result); // true

Das folgende Beispiel gibt eine Nachricht aus, abhängig vom Erfolg des Tests:

js
function testInput(re, str) {
  const midString = re.test(str) ? "contains" : "does not contain";
  console.log(`${str} ${midString} ${re.source}`);
}

Verwendung von test() mit einem Regex mit dem "global"-Flag

Hat ein Regex das global-Flag gesetzt, wird der lastIndex des Regex durch test() vorangetrieben. (RegExp.prototype.exec() treibt ebenfalls die lastIndex-Eigenschaft voran.)

Weitere Aufrufe von test(str) setzen die Suche in str ab der Position lastIndex fort. Die lastIndex-Eigenschaft erhöht sich bei jedem true von test() weiter.

Hinweis: Solange test() true zurückgibt, wird lastIndex nicht zurückgesetzt—auch nicht beim Testen eines anderen Strings!

Wenn test() false zurückgibt, wird die lastIndex-Eigenschaft des aufrufenden Regex auf 0 zurückgesetzt.

Das folgende Beispiel demonstriert dieses Verhalten:

js
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® 2025 Language Specification
# sec-regexp.prototype.test

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
test

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Siehe auch