函数作用域下的正则对象之兼容。。。

来源:互联网 发布:里海大学 知乎 编辑:程序博客网 时间:2024/05/13 03:59

<script type="text/ecmascript">
var c = function (a) {
    var globala = /^(?:)$/;
    var globalb = /^(?:)$/;
    return a ? globala : globalb;
};

alert(c(0) === c(0)); //true       IE:false
alert(c(1) === c(1)); //true       IE:false
alert(c(1) === c(0)); //false      IE:false

//有测试得出在c的作用域里的/.../不管调用多少次,都是引用的同一对应的range对象。。。仅限/.../产生的对象。。。
//注:此测试结果在OP和FF得出
//这样的效果会产生无辜的错误。。比如

var a = function (val) {
//当然,这个g完全没有意义,加它只是为了体现错误。。。
    return /^/d+$/g.test(val);
};

alert(a(1)); //true         IE:true
alert(a(2)); //false        IE:true
alert(a(3)); //true         IE:true
</script> 

原创粉丝点击