任何人都可以解释为什么alert()以下JavaScript代码被解雇?它似乎是RegExp.test()方法中的一个错误,它会在每次运行该方法时反转其先前的决定.我正在使用IE7.
我找到了一个看似坚固的替代品,string.search(regex)而不是使用该方法.但是,我很好奇是否有人知道这件事.
var styleHasWidthRegex = /\bwidth\s*\:/ig;
var styleText = "WIDTH: 350px";
var result1 = styleHasWidthRegex.test(styleText);
var result2 = !styleHasWidthRegex.test(styleText);
if (result1 == result2) {
alert("This should never happen!");
}
Run Code Online (Sandbox Code Playgroud)
Sho*_*og9 45
你的正则表达式设置了global(g)标志.每次执行时,它都会更新一个内部索引(lastIndex属性),指定它停止的位置,并在下一次开始搜索该点.
当然,你并不是真的想要它 - 你希望它每次都从头开始.所以抛弃g国旗.
| 归档时间: |
|
| 查看次数: |
4723 次 |
| 最近记录: |