正则在FireFox和IE下使用test的不同
今天同事遇到这样的问题,查明原因.记下:
由于FireForx和IE的执行javascript的引擎不同,所以会有些不同。以下的例子
<script language="javascript" type="text/javascript">
function fun(){
document.write(/a/gi.test("a"));
}
fun()
fun()
</script>
在IE的执行结果是:truetrue
在FireFox的执行结果是:truefalse
在正则中/expression/gi,g是表示global全局,i是表示不区分大小写。
一般global属性为true,做test应用不好.
所以/a/gi意味着多个搜索
而test是单次匹配。正确的应该写/a/i,或/a/.
FireFox规范点了!