| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/String/match | [Back] [Original] |
Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Gerten und in vielen Browserversionen. Sie ist seit Juli 2015 browserbergreifend verfgbar.
Die match() Methode von String Werten ruft das Ergebnis des Abgleichs dieses Strings mit einem regulren Ausdruck ab.
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"]
match(regexp)
regexpEin regulres Ausdrucksobjekt oder ein beliebiges Objekt, das eine Symbol.match Methode hat.
Wenn regexp kein RegExp Objekt ist und keine Symbol.match Methode hat, wird es implizit zu einem RegExp konvertiert, indem new RegExp(regexp) verwendet wird.
Wenn Sie keinen Parameter angeben und die match() Methode direkt verwenden, erhalten Sie ein Array mit einem leeren String: [""], da dies gleichbedeutend ist mit match(/(?:)/).
Ein Array, dessen Inhalt von der Anwesenheit oder Abwesenheit des globalen (g) Flags abhngt, oder null, wenn keine bereinstimmungen gefunden werden.
g Flag verwendet wird, werden alle Ergebnisse zurckgegeben, die mit dem vollstndigen regulren Ausdruck bereinstimmen, aber Erfassungsgruppen werden nicht eingeschlossen.g Flag nicht verwendet wird, wird nur die erste vollstndige bereinstimmung und ihre zugehrigen Erfassungsgruppen zurckgegeben. In diesem Fall gibt match() dasselbe Ergebnis zurck wie RegExp.prototype.exec() (ein Array mit einigen zustzlichen Eigenschaften).Die Implementierung von String.prototype.match tut nicht viel anderes, als die Symbol.match Methode des Arguments mit dem String als erstem Parameter aufzurufen. Die tatschliche Implementierung stammt von RegExp.prototype[Symbol.match]().
RegExp bereinstimmt, verwenden Sie RegExp.prototype.test().RegExp.prototype.exec() verwenden.RegExp.prototype.exec() oder String.prototype.matchAll() verwenden.Fr weitere Informationen ber die Semantik von match(), wenn ein Regex bergeben wird, siehe RegExp.prototype[Symbol.match]().
Im folgenden Beispiel wird match() verwendet, um "Chapter" zu finden, gefolgt von einem oder mehreren numerischen Zeichen, gefolgt von einem Dezimalpunkt und numerischen Zeichen null oder mehrmals.
Der regulre Ausdruck enthlt das i Flag, sodass Unterschiede zwischen Gro- und Kleinschreibung ignoriert werden.
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. Die index Eigenschaft (22) ist der nullbasierte Index des gesamten Matchs. Die input Eigenschaft ist der ursprngliche String, der analysiert wurde.
Das folgende Beispiel demonstriert die Verwendung des globalen Flags und des ignore-case Flags mit match(). Alle Buchstaben A bis E und a bis e werden zurckgegeben, jeder ein eigenes Element im Array.
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']
Hinweis:
Siehe auch String.prototype.matchAll() und Erweitertes Suchen mit Flags.
In Browsern, die benannte Erfassungsgruppen untersttzen, erfasst der folgende Code "fox" oder "cat" in eine Gruppe namens animal:
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"}
const str = "Nothing will come of nothing.";
str.match(); // returns [""]
[Symbol.match]() implementiertWenn ein Objekt eine Symbol.match Methode hat, kann es als benutzerdefinierter Matcher verwendet werden. Der Rckgabewert von Symbol.match wird dann zum Rckgabewert von match().
const str = "Hmm, this is interesting.";
str.match({
[Symbol.match](str) {
return ["Yes, it's interesting."];
},
}); // returns ["Yes, it's interesting."]
Wenn der regexp Parameter ein String oder eine Zahl ist, wird es implizit zu einem RegExp konvertiert, indem new RegExp(regexp) verwendet wird.
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.
console.log("123".match("1.3")); // [ "123" ]
Dies ist eine bereinstimmung, weil . in einem Regex jedes Zeichen erfasst. Um nur einen Punkt zu erfassen, mssen Sie die Eingabe escapen.
console.log("123".match("1\\.3")); // null
| Spezifikation |
|---|
| ECMAScript 2027 LanguageSpecification # sec-string.prototype.match |
String.prototype.match in core-js mit Korrekturen und Implementierung von modernem Verhalten wie Symbol.match UntersttzungString.prototype.matchAll()RegExpRegExp.prototype.exec()RegExp.prototype.test()Stringanchor()at()big()blink()bold()charAt()charCodeAt()codePointAt()concat()endsWith()fixed()fontcolor()fontsize()includes()indexOf()isWellFormed()italics()lastIndexOf()link()localeCompare()match()matchAll()normalize()padEnd()padStart()repeat()replace()replaceAll()search()slice()small()split()startsWith()strike()sub()substr()substring()sup()toLocaleLowerCase()toLocaleUpperCase()toLowerCase()toString()toUpperCase()toWellFormed()trim()trimEnd()trimStart()valueOf()[Symbol.iterator]()Object/FunctionDer Bauplan fr ein besseres Internet.
Teile dieses Inhalts sind 19982026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfgbar unter einer Creative-Commons-Lizenz.
| Web Proxy Viewer | New URL | Original Page |