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 = /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. Bei einer Groß-/Kleinschreibungs-unabhängigen Übereinstimmung werden sowohl das erwartete Zeichen-Set als auch der übereinstimmende String auf die gleiche Schreibweise abgebildet.

Wenn der Reguläre Ausdruck Unicode-bewusst ist, erfolgt die Schreibweisenzuordnung durch simple case folding, wie in CaseFolding.txt angegeben. Die Zuordnung erfolgt immer zu einem einzelnen Codepunkt, so dass zum Beispiel ß (U+00DF LATIN SMALL LETTER SHARP S) nicht in ss umgewandelt wird (was full case folding wäre, nicht simple case folding). Es kann jedoch sein, dass Codepunkte außerhalb des Basic Latin Blocks zu Codepunkten innerhalb davon zugeordnet werden — zum Beispiel wird ſ (U+017F LATIN SMALL LETTER LONG S) zu s (U+0073 LATIN SMALL LETTER S) und (U+212A KELVIN SIGN) zu k (U+006B LATIN SMALL LETTER K) case-gefaltet. Deshalb können ſ und durch /[a-z]/ui gematcht werden.

Wenn der Reguläre Ausdruck Unicode-unbewusst ist, erfolgt die Schreibweisen-Zuordnung durch die Unicode Default Case Conversion — derselbe Algorithmus, der in String.prototype.toUpperCase() verwendet wird. Dieser Algorithmus verhindert, dass Codepunkte außerhalb des Basic Latin Blocks zu Codepunkten innerhalb davon zugeordnet werden; daher werden ſ und wie zuvor erwähnt nicht durch /[a-z]/i gematcht.

Unicode-bewusste Schreibweisenzuordnung erfolgt allgemein in Kleinbuchstaben, während Unicode-unbewusste in Großbuchstaben erfolgt. Diese beiden sind keine perfekten Umkehr-Operationen, daher gibt es einige subtile Verhaltensunterschiede. Zum Beispiel werden (U+2126 OHM SIGN) und Ω (U+03A9 GREEK CAPITAL LETTER OMEGA) beide durch simple case folding zu ω (U+03C9 GREEK SMALL LETTER OMEGA) umgewandelt, sodass "\u2126" durch /[\u03c9]/ui und /[\u03a9]/ui gematcht wird; auf der anderen Seite wird U+2126 durch die Default Case Conversion zu sich selbst gemappt, während die anderen beiden zu U+03A9 gemappt werden, so dass "\u2126" von weder /[\u03c9]/i noch /[\u03a9]/i gematcht wird.

Der Set-Accessor von ignoreCase ist undefined. Sie können diese Eigenschaft nicht direkt ändern.

Beispiele

Verwendung von ignoreCase

js
const regex = /foo/i;

console.log(regex.ignoreCase); // true

Spezifikationen

Specification
ECMAScript® 2026 Language Specification
# sec-get-regexp.prototype.ignorecase

Browser-Kompatibilität

Siehe auch