相关疑难解决方法(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逻辑行为循环与alert()与没有它?

我的代码类似于对象数组中的此过滤条目:

var filterRegex = new RegExp(".*blah.*","ig");
if (filterRegex.test(events[i].thing) && events[i].show) {
    console.log("SUCCESS: filtering thing " + i + " " + events[i].thing);
    events[i].show = false;
    numevents--;
}
Run Code Online (Sandbox Code Playgroud)

我得到的结果与if if条件不一致(用Firebug检查,两个条件都是单独的,但有时整个表达式的计算结果为false).但是,如果我实际上alert()在这个if语句中放入一个调用(如第4行),它会变得一致,我得到我想要的结果.

你能看出这个逻辑有什么问题,并告诉我为什么它并不总能产生预期的东西?

javascript regex

16
推荐指数
1
解决办法
3238
查看次数

标签 统计

javascript ×2

regex ×2