String.prototype.search()
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
Die Methode search() von String-Werten sucht nach einer Übereinstimmung zwischen einem regulären Ausdruck und diesem String und gibt den Index der ersten Übereinstimmung 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 Objekt mit einem regulären Ausdruck oder ein beliebiges Objekt mit einer
Symbol.search-Methode.Wenn
regexpkeinRegExp-Objekt ist und keineSymbol.search-Methode hat, wird es mitnew RegExp(regexp)implizit in einRegExp-Objekt umgewandelt.
Rückgabewert
Der Index der ersten Übereinstimmung zwischen dem regulären Ausdruck und dem angegebenen String oder -1, wenn keine Übereinstimmung gefunden wurde.
Beschreibung
Die Implementierung von String.prototype.search() ruft lediglich die Symbol.search-Methode des Arguments mit dem String als erstem Parameter auf. Die eigentliche Implementierung befindet sich in RegExp.prototype[Symbol.search]().
Das g-Flag von regexp hat keinen Einfluss auf das Ergebnis von search(). Die Suche erfolgt immer so, als wäre lastIndex des regulären Ausdrucks gleich 0. Weitere Informationen zum Verhalten von search() finden Sie unter RegExp.prototype[Symbol.search]().
Wenn Sie wissen möchten, ob ein Muster gefunden wurde, und auch dessen Index innerhalb eines Strings benötigen, verwenden Sie search().
- Wenn Sie nur wissen möchten, ob das Muster vorkommt, verwenden Sie die Methode
RegExp.prototype.test(), die einen booleschen Wert zurückgibt. - Wenn Sie den Inhalt des übereinstimmenden Textes benötigen, verwenden Sie
String.prototype.match()oderRegExp.prototype.exec().
Beispiele
>search() verwenden
Das folgende Beispiel durchsucht einen String mit zwei verschiedenen Objekten mit regulären Ausdrücken, um eine erfolgreiche Suche (positiver Wert) und eine erfolglose Suche (-1) gegenüberzustellen.
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
| Spezifikation |
|---|
| ECMAScript® 2027 Language Specification> # sec-string.prototype.search> |