我将这个代码示例用于一个类问题,但是我用Google搜索了答案,尽管人们说他们对此没有错,但我遇到了一个主要问题,因为我使用的代码我并不完全理解。 我必须同时使用变量regex1和regex2才能使其正常工作,但不明白为什么,也无法理解为什么没有regex2中的i代码就无法工作。我只想使用.ignoreCase和.test(),但它只能以这种方式工作。我不记得我在课堂测试中做过什么,但是我想了解这一点,已经阅读了Mozilla几个小时,但仍然对它的工作原理有所迷惑。
//This roughly what I used if I recall everything correctly.
var regex1 = new RegExp('virg');
var regex2 = new RegExp('virgil','i');
regex2.ignoreCase;
console.log(regex2.test('Virgilio'));
//This was the example I used but don't understand
var regex1 = new RegExp('foo');
var 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
答案 0 :(得分:0)
i
标志用于在匹配时忽略大小写,这意味着如果使用i
标志,则正则表达式引擎会将uppercase
和lowercase
字母视为相同。< / p>
Example 'A' === 'a' // true in case of `i` flag active
'A' === 'a' // false in case of `i` flag not active
the About technical profiles in Azure Active Directory B2C custom policies article用于测试i
标志是否已激活,它是只读属性
答案 1 :(得分:0)
该示例说明了i标志参数的工作原理。
var regex1 = new RegExp('foo'); // case sensitive
var regex2 = new RegExp('foo', 'i'); // case insensitive
console.log(regex1.test('Football')); // show false, because 'F' <> 'f'
console.log(regex2.ignoreCase); // show true, because i flag was used in regex2. Otherwise false
console.log(regex2.test('Football')); // show true, because 'Football' contains 'foo' and dont care lower and upper case
https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/RegExp