我在Chrome(开发者工具)和Firefox(Firebug)中都有这种行为。请注意,正则表达式测试返回交替的true / false值:
> var re = /.*?\bbl.*\bgr.*/gi;
undefined
> re
/.*?\\bbl.*\\bgr.*/gi
> re.test("Blue-Green");
true
> re.test("Blue-Green");
false
> re.test("Blue-Green");
true
> re.test("Blue-Green");
false
但是,测试与文字相同的正则表达式:
> /.*?\bbl.*\bgr.*/gi.test("Blue-Green");
true
> /.*?\bbl.*\bgr.*/gi.test("Blue-Green");
true
> /.*?\bbl.*\bgr.*/gi.test("Blue-Green");
true
> /.*?\bbl.*\bgr.*/gi.test("Blue-Green");
true
我无法解释这一点,而且调试非常困难。任何人都可以解释这种行为吗?
答案 0 :(得分:9)