RegExp.prototype.ignoreCase

基线 广泛可用

此功能已得到良好建立,并在许多设备和浏览器版本中运行。它自 2015 年 7 月.

报告反馈

试一试

描述

ignoreCaseRegExp 实例的访问器属性,它返回该正则表达式是否使用了 i 标志。

如果使用了 i 标志,RegExp.prototype.ignoreCase 的值为 true;否则,为 falsei 标志表示在尝试匹配字符串时应忽略大小写。不区分大小写的匹配通过将预期字符集和匹配字符串映射到相同的大小写来完成。

如果正则表达式是 Unicode 敏感的,则大小写映射通过 CaseFolding.txt 中指定的简单大小写折叠进行。映射始终映射到单个代码点,因此它不会映射例如 ß (U+00DF LATIN SMALL LETTER SHARP S) 到 ss (这是完整大小写折叠,而不是简单大小写折叠)。但是,它可能会将基本拉丁字母块之外的代码点映射到其中的代码点——例如,ſ (U+017F LATIN SMALL LETTER LONG S) 的大小写折叠到 s (U+0073 LATIN SMALL LETTER S) 以及 (U+212A KELVIN SIGN) 的大小写折叠到 k (U+006B LATIN SMALL LETTER K)。因此,ſ 可以被 /[a-z]/ui 匹配。

如果正则表达式不是 Unicode 敏感的,则大小写映射使用 Unicode 默认大小写转换——与 String.prototype.toUpperCase() 中使用的算法相同。例如, (U+2126 OHM SIGN) 和 Ω (U+03A9 GREEK CAPITAL LETTER OMEGA) 都通过默认大小写转换映射到自身,但通过简单大小写折叠映射到 ω (U+03C9 GREEK SMALL LETTER OMEGA),因此 "ω" 可以被 /[\u2126]/ui/[\u03a9]/ui 匹配,但不能被 /[\u2126]/i/[\u03a9]/i 匹配。该算法防止基本拉丁字母块之外的代码点映射到其中的代码点,因此之前提到的 ſ 不能被 /[a-z]/i 匹配。

示例

ignoreCase 的设置访问器为 undefined。您无法直接更改此属性。

使用 ignoreCase
const regex = /foo/i;

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

规范

js
规范
# ECMAScript 语言规范

浏览器兼容性

sec-get-regexp.prototype.ignorecase

另请参阅