Spec-Zone.ru › JavaScript

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

Спецификации

Спецификация
Спецификация языка ECMAScript® 2027
# sec-get-regexp.prototype.ignorecase

Совместимость с браузерами

Настольные ПК Мобильные Сервер
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.lastIndex
  • RegExp.prototype.dotAll
  • RegExp.prototype.global
  • RegExp.prototype.hasIndices
  • RegExp.prototype.multiline
  • RegExp.prototype.source
  • RegExp.prototype.sticky
  • RegExp.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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API