A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/RegExp/Symbol.search below:

RegExp.prototype[Symbol.search]() - JavaScript | MDN

RegExp.prototype[Symbol.search]()

Baseline Widely available

Die Methode [Symbol.search]() von RegExp-Instanzen gibt an, wie String.prototype.search funktionieren sollte.

Probieren Sie es aus
class RegExp1 extends RegExp {
  constructor(str) {
    super(str);
    this.pattern = str;
  }
  [Symbol.search](str) {
    return str.indexOf(this.pattern);
  }
}

console.log("table football".search(new RegExp1("foo")));
// Expected output: 6
Syntax
regexp[Symbol.search](str)
Parameter
str

Ein String, der das Ziel der Suche ist.

Rückgabewert

Der Index des ersten Treffers zwischen dem regulären Ausdruck und dem gegebenen String oder -1, wenn kein Treffer gefunden wurde.

Beschreibung

Diese Methode wird intern in String.prototype.search() aufgerufen. Zum Beispiel liefern die folgenden zwei Beispiele dasselbe Ergebnis.

"abc".search(/a/);

/a/[Symbol.search]("abc");

Diese Methode kopiert den regulären Ausdruck nicht, anders als [Symbol.split]() oder [Symbol.matchAll](). Allerdings, im Gegensatz zu [Symbol.match]() oder [Symbol.replace](), wird es lastIndex auf 0 setzen, wenn die Ausführung beginnt, und es auf den vorherigen Wert zurücksetzen, wenn es endet, um so im Allgemeinen Nebeneffekte zu vermeiden. Dies bedeutet, dass das g-Flag keine Auswirkung mit dieser Methode hat und es immer den ersten Treffer im String zurückgibt, selbst wenn lastIndex ungleich null ist. Dies bedeutet auch, dass sticky reguläre Ausdrücke immer strikt am Anfang des Strings suchen werden.

const re = /[abc]/g;
re.lastIndex = 2;
console.log("abc".search(re)); // 0

const re2 = /[bc]/y;
re2.lastIndex = 1;
console.log("abc".search(re2)); // -1
console.log("abc".match(re2)); // [ 'b' ]

[Symbol.search]() ruft immer genau einmal die exec()-Methode des regulären Ausdrucks auf und gibt die index-Eigenschaft des Ergebnisses zurück, oder -1, wenn das Ergebnis null ist.

Diese Methode existiert, um das Suchverhalten in RegExp-Subklassen anzupassen.

Beispiele Direkter Aufruf

Diese Methode kann fast auf dieselbe Weise verwendet werden wie String.prototype.search(), abgesehen vom unterschiedlichen Wert von this und der unterschiedlichen Reihenfolge der Argumente.

const re = /-/g;
const str = "2016-01-02";
const result = re[Symbol.search](str);
console.log(result); // 4
Verwendung von [Symbol.search]() in Subklassen

Subklassen von RegExp können die [Symbol.search]()-Methode überschreiben, um das Verhalten zu ändern.

class MyRegExp extends RegExp {
  constructor(str) {
    super(str);
    this.pattern = str;
  }
  [Symbol.search](str) {
    return str.indexOf(this.pattern);
  }
}

const re = new MyRegExp("a+b");
const str = "ab a+b";
const result = str.search(re); // String.prototype.search calls re[Symbol.search]().
console.log(result); // 3
Spezifikationen Browser-Kompatibilität Siehe auch

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4