String.prototype.search()
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 search()
-Methode von String
-Werten führt eine Suche nach einer Übereinstimmung zwischen einem regulären Ausdruck und diesem String durch und gibt den Index des ersten Treffers im String zurück.
Probieren Sie es aus
const paragraph = "I think Ruth's dog is cuter than your dog!";
// Anything not a word character, whitespace or apostrophe
const regex = /[^\w\s']/g;
console.log(paragraph.search(regex));
// Expected output: 41
console.log(paragraph[paragraph.search(regex)]);
// Expected output: "!"
Syntax
search(regexp)
Parameter
regexp
-
Ein reguläres Ausdrucksobjekt oder ein beliebiges Objekt, das eine
Symbol.search
-Methode hat.Wenn
regexp
keinRegExp
-Objekt ist und keineSymbol.search
-Methode hat, wird es implizit mitnew RegExp(regexp)
in einRegExp
umgewandelt.
Rückgabewert
Den Index des ersten Treffers zwischen dem regulären Ausdruck und dem angegebenen String, oder -1
, wenn keine Übereinstimmung gefunden wurde.
Beschreibung
Die Implementierung von String.prototype.search()
tut nicht viel mehr, als die Symbol.search
-Methode des Arguments mit dem String als erstem Parameter aufzurufen. Die tatsächliche Implementierung stammt von RegExp.prototype[Symbol.search]()
.
Das g
-Flag von regexp
hat keinen Einfluss auf das Ergebnis von search()
, und die Suche erfolgt immer so, als ob der lastIndex
des regulären Ausdrucks 0
wäre. Weitere Informationen zum Verhalten von search()
finden Sie unter RegExp.prototype[Symbol.search]()
.
Wenn Sie wissen möchten, ob ein Muster gefunden wird, und außerdem dessen Index innerhalb eines Strings wissen möchten, verwenden Sie search()
.
- Wenn Sie nur prüfen möchten, ob es existiert, verwenden Sie die
RegExp.prototype.test()
-Methode, die einen Booleschen Wert zurückgibt. - Wenn Sie den Inhalt des übereinstimmenden Textes benötigen, verwenden Sie
String.prototype.match()
oderRegExp.prototype.exec()
.
Beispiele
Verwendung von search()
Das folgende Beispiel durchsucht einen String mit zwei verschiedenen regulären Ausdruck-Objekten, um eine erfolgreiche Suche (positiver Wert) im Vergleich zu einer erfolglosen Suche (-1
) zu zeigen.
const str = "hey JudE";
const re = /[A-Z]/;
const reDot = /[.]/;
console.log(str.search(re)); // returns 4, which is the index of the first capital letter "J"
console.log(str.search(reDot)); // returns -1 cannot find '.' dot punctuation
Spezifikationen
Specification |
---|
ECMAScript® 2025 Language Specification # sec-string.prototype.search |
Browser-Kompatibilität
Report problems with this compatibility data on GitHubdesktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
search |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support