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
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, suchttest()
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.
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:
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:
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 GitHubdesktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
test |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support
Siehe auch
- Reguläre Ausdrücke Leitfaden
RegExp