当我使用全局标志和不区分大小写的标志时,这个正则表达式有什么问题?查询是用户生成的输入.结果应该是[true,true].
var query = 'Foo B';
var re = new RegExp(query, 'gi');
var result = [];
result.push(re.test('Foo Bar'));
result.push(re.test('Foo Bar'));
// result will be [true, false]
Run Code Online (Sandbox Code Playgroud)
var reg = /^a$/g;
for(i = 0; i++ < 10;)
console.log(reg.test("a"));Run Code Online (Sandbox Code Playgroud)
基本上,我的问题是关于Javascript如何处理正则表达式文字.
与数字,字符串和布尔形成对比,其中文字是原始数据类型,对应的数字,字符串和布尔对象存在无缝类型转换,是正则表达式文字的RegExp对象的匿名实例,或者这是正则表达式被视为原始数据与无缝的情况类型转换为RegExp?
"完整的参考Javascript,第2版,Powell和Schneider(MH)"自相矛盾 - 在一个地方,作者说/ regex /会在需要时被自动转换为RegExp,在另一个地方他们说/ regex /只是一个RegExp的实例!
编辑:请提供可靠来源的参考