RegExp.prototype.ignoreCase
Baseline Широко доступно
Эта функция хорошо зарекомендовала себя и работает на множестве устройств и версий браузеров. Она доступна во всех браузерах с июля 2015 года.
Свойство доступа ignoreCase объектов RegExp возвращает значение, указывающее, используется ли флаг i с этим регулярным выражением.
Попробуйте
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
Описание
RegExp.prototype.ignoreCase имеет значение true, если использовался флаг i; в противном случае — false. Флаг i указывает, что регистр следует игнорировать при попытке сопоставления в строке. Сопоставление без учета регистра выполняется путем приведения как ожидаемого набора символов, так и сопоставляемой строки к одному и тому же регистру.
Если регулярное выражение поддерживает Unicode (Unicode-aware), сопоставление регистра происходит через простое свертывание регистра, указанное в CaseFolding.txt. Сопоставление всегда выполняется к одной кодовой точке, поэтому оно не сопоставляет, например, ß (U+00DF LATIN SMALL LETTER SHARP S) с ss (что является полным свертыванием регистра, а не простым свертыванием регистра). Однако оно может сопоставлять кодовые точки за пределами Basic Latin Block с кодовыми точками внутри него — например, ſ (U+017F LATIN SMALL LETTER LONG S) свертывается по регистру к s (U+0073 LATIN SMALL LETTER S), а K (U+212A KELVIN SIGN) свертывается по регистру к k (U+006B LATIN SMALL LETTER K). Следовательно, ſ и K могут быть сопоставлены с помощью /[a-z]/ui.
Если регулярное выражение не поддерживает Unicode, для сопоставления регистра используется Unicode Default Case Conversion — тот же алгоритм, который используется в String.prototype.toUpperCase(). Этот алгоритм предотвращает сопоставление кодовых точек за пределами Basic Latin Block с кодовыми точками внутри него, поэтому ранее упомянутые ſ и K не сопоставляются с помощью /[a-z]/i.
Простое свертывание регистра Unicode обычно сворачивает к нижнему регистру, тогда как свертывание регистра, не поддерживающее Unicode, сворачивает к верхнему регистру. Эти два процесса не являются идеальными обратными операциями, поэтому существуют некоторые тонкие различия в поведении. Например, Ω (U+2126 OHM SIGN) и Ω (U+03A9 GREEK CAPITAL LETTER OMEGA) оба преобразуются простым свертыванием регистра в ω (U+03C9 GREEK SMALL LETTER OMEGA), поэтому "\u2126" сопоставляется с /[\u03c9]/ui и /[\u03a9]/ui; с другой стороны, U+2126 преобразуется Default Case Conversion в сам себя, в то время как другие две преобразуются в U+03A9, поэтому "\u2126" не сопоставляется ни с /[\u03c9]/i, ни с /[\u03a9]/i.
Сеттер свойства ignoreCase является undefined. Вы не можете изменить это свойство напрямую.
Примеры
Использование ignoreCase
const regex = /foo/i; console.log(regex.ignoreCase); // true
Спецификации
Совместимость с браузерами
| Настольные ПК | Мобильные | Сервер | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
ignoreCase |
1 |
12 |
1 |
5 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
1.0.0 |
1.0 |
0.10.0 |
prototype_accessor |
48 |
12 |
38 |
35 |
1.3 |
48 |
38 |
35 |
1 |
5.0 |
48 |
1 |
1.0.0 |
1.0 |
6.0.0 |
См. также
RegExp.prototype.lastIndexRegExp.prototype.dotAllRegExp.prototype.globalRegExp.prototype.hasIndicesRegExp.prototype.multilineRegExp.prototype.sourceRegExp.prototype.stickyRegExp.prototype.unicode
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/ignoreCase