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 July 2015.
Die ignoreCase
Accessor-Eigenschaft von RegExp
-Instanzen gibt an, ob das i
-Flag mit diesem regulären Ausdruck verwendet wird oder nicht.
Probieren Sie es aus
const regex1 = new RegExp("foo");
const regex2 = new RegExp("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 zeigt an, dass die Groß- und Kleinschreibung bei der Versuch eines Abgleichs in einer Zeichenfolge ignoriert werden soll. Groß-/Kleinschreibung-unabhängige Vergleiche werden durchgeführt, indem sowohl das erwartete Zeichenset als auch die verglichene Zeichenfolge auf dieselbe Groß-/Kleinschreibung abgebildet werden.
Falls der reguläre Ausdruck Unicode-bewusst ist, erfolgt die Groß-/Kleinschreibungszuordnung durch ein Simple Case Folding, das in CaseFolding.txt
spezifiziert ist. Dabei wird immer auf einen einzelnen Codepunkt abgebildet, sodass beispielsweise ß
(U+00DF LATIN SMALL LETTER SHARP S) nicht auf ss
abgebildet wird (was ein Full Case Folding wäre, aber kein Simple Case Folding). Es können jedoch Codepunkte außerhalb des Basis-Latein-Blocks auf Codepunkte innerhalb davon abgebildet werden – zum Beispiel wird ſ
(U+017F LATIN SMALL LETTER LONG S) auf s
(U+0073 LATIN SMALL LETTER S) und K
(U+212A KELVIN SIGN) auf k
(U+006B LATIN SMALL LETTER K) abgebildet. Daher können ſ
und K
mit /[a-z]/ui
abgeglichen werden.
Falls der reguläre Ausdruck nicht Unicode-bewusst ist, verwendet die Groß-/Kleinschreibungszuordnung die Unicode Default Case Conversion – denselben Algorithmus, der auch in String.prototype.toUpperCase()
verwendet wird. Dieser Algorithmus verhindert, dass Codepunkte außerhalb des Basis-Latein-Blocks auf Codepunkte innerhalb dessen abgebildet werden. Daher werden die zuvor erwähnten ſ
und K
nicht von /[a-z]/i
abgeglichen.
Unicode-bewusstes Case Folding erfolgt gewöhnlich in Kleinbuchstaben, während Unicode-unbewusstes Case Folding in Großbuchstaben erfolgt. Diese beiden Operationen sind keine perfekten Umkehroperationen, daher gibt es einige subtile Verhaltensunterschiede. Zum Beispiel werden Ω
(U+2126 OHM SIGN) und Ω
(U+03A9 GREEK CAPITAL LETTER OMEGA) durch Simple Case Folding beide auf ω
(U+03C9 GREEK SMALL LETTER OMEGA) abgebildet, sodass "\u2126"
sowohl mit /[\u03c9]/ui
als auch mit /[\u03a9]/ui
abgeglichen wird. Andererseits wird U+2126 durch die Default Case Conversion auf sich selbst abgebildet, während die anderen beiden auf U+03A9 abgebildet werden. Daher wird "\u2126"
weder durch /[\u03c9]/i
noch durch /[\u03a9]/i
abgeglichen.
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® 2025 Language Specification # sec-get-regexp.prototype.ignorecase |
Browser-Kompatibilität
Report problems with this compatibility data on GitHubdesktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ignoreCase | ||||||||||||||
Prototype accessor property (ES2015) |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support