RegExp.prototype.ignoreCase
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.
Die ignoreCase Accessor-Eigenschaft von RegExp Instanzen gibt zurück, ob das i Flag mit diesem regulären Ausdruck verwendet wird oder nicht.
Probieren Sie es aus
const regex1 = /foo/;
const regex2 = /foo/i;
console.log(regex1.test("Football"));
// Expected output: false
console.log(regex2.ignoreCase);
// Expected output: true
console.log(regex2.test("Football"));
// Expected output: true
Beschreibung
RegExp.prototype.ignoreCase hat den Wert true, wenn das i Flag verwendet wurde; andernfalls false. Das i Flag gibt an, dass bei dem Versuch, in einem String eine Übereinstimmung zu finden, die Groß-/Kleinschreibung ignoriert werden soll. Durch die Fallunabhängigkeit wird sowohl die erwartete Zeichensatzmenge als auch der übereinstimmende String auf dieselbe Groß-/Kleinschreibung abgebildet.
Wenn der reguläre Ausdruck Unicode-bewusst ist, erfolgt die Fallabbildung durch simple case folding wie in CaseFolding.txt spezifiziert. Die Abbildung erfolgt immer auf einen einzelnen Codepunkt, sodass ß (U+00DF LATIN SMALL LETTER SHARP S) zum Beispiel nicht in ss abgebildet wird (was full case folding wäre, nicht simple case folding). Es kann jedoch Codepunkte außerhalb des Basic Latin-Blocks zu Codepunkten innerhalb dieses Blocks abbilden — zum Beispiel wird ſ (U+017F LATIN SMALL LETTER LONG S) zu s (U+0073 LATIN SMALL LETTER S) und K (U+212A KELVIN SIGN) zu k (U+006B LATIN SMALL LETTER K) abgebildet. Daher können ſ und K durch /[a-z]/ui übereinstimmen.
Wenn der reguläre Ausdruck nicht Unicode-bewusst ist, erfolgt die Fallabbildung mittels Unicode Default Case Conversion — demselben Algorithmus, der in String.prototype.toUpperCase() verwendet wird. Dieser Algorithmus verhindert, dass Codepunkte außerhalb des Basic Latin-Blocks zu Codepunkten innerhalb dieses Blocks abgebildet werden, sodass ſ und K, wie zuvor erwähnt, nicht von /[a-z]/i übereinstimmen.
Unicode-bewusste Fallabbildung erfolgt allgemein zu Kleinbuchstaben, während Unicode-unbewusste Fallabbildung zu Großbuchstaben erfolgt. Diese beiden sind keine perfekten umgekehrten Operationen, daher gibt es einige subtile Verhaltensunterschiede. Zum Beispiel werden Ω (U+2126 OHM SIGN) und Ω (U+03A9 GREEK CAPITAL LETTER OMEGA) beide durch einfache Fallabbildung zu ω (U+03C9 GREEK SMALL LETTER OMEGA) abgebildet, sodass "\u2126" durch /[\u03c9]/ui und /[\u03a9]/ui übereinstimmt; andererseits wird U+2126 durch die Default Case Conversion auf sich selbst abgebildet, während die anderen beiden auf U+03A9 abgebildet werden, sodass "\u2126" weder durch /[\u03c9]/i noch /[\u03a9]/i übereinstimmt.
Der Set-Accessor von ignoreCase ist undefined. Sie können diese Eigenschaft nicht direkt ändern.
Beispiele
>Verwendung von ignoreCase
const regex = /foo/i;
console.log(regex.ignoreCase); // true
Spezifikationen
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-get-regexp.prototype.ignorecase> |
Browser-Kompatibilität
Loading…