相关疑难解决方法(0)

为什么带有全局标志的RegExp会产生错误的结果?

当我使用全局标志和不区分大小写的标志时,这个正则表达式有什么问题?查询是用户生成的输入.结果应该是[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 regex

254
推荐指数
4
解决办法
4万
查看次数

为什么我的javascript regex.test()给出了交替的结果

可能重复:
Javascript正则表达式返回true ..然后为false ..然后为true ..等等

var r = /\d/g;
var a = r.test("1"); // will be true
var b = r.test("1"); // will be false
console.log(a == b); // will be false
Run Code Online (Sandbox Code Playgroud)

请向我解释为什么r.test("1")每次通话交替的结果?

通过删除g修饰符,我能够解决我遇到的问题.但是我仍然想知道为什么会这样.

javascript regex

71
推荐指数
1
解决办法
1万
查看次数

标签 统计

javascript ×2

regex ×2