Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. JavaScript-Referenz
  4. Eingebaute Standardobjekte
  5. String
  6. match()

Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.

View in EnglishAlways switch to English

String.prototype.match()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨Juli 2015⁩.

Diematch() Methode vonString Werten ruft das Ergebnis des Abgleichs dieses Strings mit einemregulären Ausdruck ab.

Probieren Sie es aus

const paragraph = "The quick brown fox jumps over the lazy dog. It barked.";const regex = /[A-Z]/g;const found = paragraph.match(regex);console.log(found);// Expected output: Array ["T", "I"]

Syntax

js
match(regexp)

Parameter

regexp

Ein reguläres Ausdrucksobjekt oder ein beliebiges Objekt, das eineSymbol.match Methode hat.

Wennregexp keinRegExp Objekt ist und keineSymbol.match Methode hat, wird es implizit zu einemRegExp konvertiert, indemnew RegExp(regexp) verwendet wird.

Wenn Sie keinen Parameter angeben und diematch() Methode direkt verwenden, erhalten Sie einArray mit einem leeren String:[""], da dies gleichbedeutend ist mitmatch(/(?:)/).

Rückgabewert

EinArray, dessen Inhalt von der Anwesenheit oder Abwesenheit des globalen (g) Flags abhängt, odernull, wenn keine Übereinstimmungen gefunden werden.

  • Wenn dasg Flag verwendet wird, werden alle Ergebnisse zurückgegeben, die mit dem vollständigen regulären Ausdruck übereinstimmen, aber Erfassungsgruppen werden nicht eingeschlossen.
  • Wenn dasg Flag nicht verwendet wird, wird nur die erste vollständige Übereinstimmung und ihre zugehörigen Erfassungsgruppen zurückgegeben. In diesem Fall gibtmatch() dasselbe Ergebnis zurück wieRegExp.prototype.exec() (ein Array mit einigen zusätzlichen Eigenschaften).

Beschreibung

Die Implementierung vonString.prototype.match tut nicht viel anderes, als dieSymbol.match Methode des Arguments mit dem String als erstem Parameter aufzurufen. Die tatsächliche Implementierung stammt vonRegExp.prototype[Symbol.match]().

Für weitere Informationen über die Semantik vonmatch(), wenn ein Regex übergeben wird, sieheRegExp.prototype[Symbol.match]().

Beispiele

Verwendung von match()

Im folgenden Beispiel wirdmatch() verwendet, um"Chapter" zu finden, gefolgt von einem oder mehreren numerischen Zeichen, gefolgt von einem Dezimalpunkt und numerischen Zeichen null oder mehrmals.

Der reguläre Ausdruck enthält dasi Flag, sodass Unterschiede zwischen Groß- und Kleinschreibung ignoriert werden.

js
const str = "For more information, see Chapter 3.4.5.1";const re = /see (chapter \d+(\.\d)*)/i;const found = str.match(re);console.log(found);// [//   'see Chapter 3.4.5.1',//   'Chapter 3.4.5.1',//   '.1',//   index: 22,//   input: 'For more information, see Chapter 3.4.5.1',//   groups: undefined// ]

Im obigen Match-Ergebnis ist'see Chapter 3.4.5.1' das gesamte Match.'Chapter 3.4.5.1' wurde von(chapter \d+(\.\d)*) erfasst.'.1' war der letzte Wert, der von(\.\d) erfasst wurde. Dieindex Eigenschaft (22) ist der nullbasierte Index des gesamten Matchs. Dieinput Eigenschaft ist der ursprüngliche String, der analysiert wurde.

Verwendung der globalen und ignoreCase Flags mit match()

Das folgende Beispiel demonstriert die Verwendung des globalen Flags und des ignore-case Flags mitmatch(). Alle BuchstabenA bisE unda bise werden zurückgegeben, jeder ein eigenes Element im Array.

js
const str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";const regexp = /[a-e]/gi;const matches = str.match(regexp);console.log(matches);// ['A', 'B', 'C', 'D', 'E', 'a', 'b', 'c', 'd', 'e']

Verwendung von benannten Erfassungsgruppen

In Browsern, die benannte Erfassungsgruppen unterstützen, erfasst der folgende Code"fox" oder"cat" in eine Gruppe namensanimal:

js
const paragraph = "The quick brown fox jumps over the lazy dog. It barked.";const capturingRegex = /(?<animal>fox|cat) jumps over/;const found = paragraph.match(capturingRegex);console.log(found.groups); // {animal: "fox"}

Verwendung von match() ohne Parameter

js
const str = "Nothing will come of nothing.";str.match(); // returns [""]

Verwendung von match() mit einem nicht-RegExp, das[Symbol.match]() implementiert

Wenn ein Objekt eineSymbol.match Methode hat, kann es als benutzerdefinierter Matcher verwendet werden. Der Rückgabewert vonSymbol.match wird dann zum Rückgabewert vonmatch().

js
const str = "Hmm, this is interesting.";str.match({  [Symbol.match](str) {    return ["Yes, it's interesting."];  },}); // returns ["Yes, it's interesting."]

Ein nicht-RegExp als Parameter

Wenn derregexp Parameter ein String oder eine Zahl ist, wird es implizit zu einemRegExp konvertiert, indemnew RegExp(regexp) verwendet wird.

js
const str1 =  "All numbers except NaN satisfy <= Infinity and >= -Infinity in JavaScript.";const str2 =  "My grandfather is 65 years old and My grandmother is 63 years old.";const str3 = "The contract was declared null and void.";str1.match("number"); // "number" is a string. returns ["number"]str1.match(NaN); // the type of NaN is the number. returns ["NaN"]str1.match(Infinity); // the type of Infinity is the number. returns ["Infinity"]str1.match(-Infinity); // returns ["-Infinity"]str2.match(65); // returns ["65"]str3.match(null); // returns ["null"]

Dies kann unerwartete Ergebnisse haben, wenn Sonderzeichen nicht ordnungsgemäß maskiert sind.

js
console.log("123".match("1.3")); // [ "123" ]

Dies ist eine Übereinstimmung, weil. in einem Regex jedes Zeichen erfasst. Um nur einen Punkt zu erfassen, müssen Sie die Eingabe escapen.

js
console.log("123".match("1\\.3")); // null

Spezifikationen

Specification
ECMAScript® 2026 Language Specification
# sec-string.prototype.match

Browser-Kompatibilität

Siehe auch

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2025 Movatter.jp