<script>
var i = "5";
var j = "6";
var reg1 = new RegExp("[0123456789]","g");
alert(reg1.test(i)); //true
alert(reg1.test(j)); //false
</script>

解决方案 »

  1.   

    如果为正则表达式设置了全局标志,则 test 从 lastIndex 值指示的位置开始搜索字符串。如果没有设置全局标志,则 test 忽略 lastIndex 的值,从字符串的起始位置开始搜索。你加了"g",第二次搜索就从第二个字符开始了,j只有一个字符,所以反回false
      

  2.   

    <script> 
    var i = "5"; 
    var j = "6"; 
    var reg1 = /[0123456789]/; 
    alert(reg1.test(j)); //false 
    alert(reg1.test(i)); //true 
    </script>
      

  3.   

    or
    <script> 
    var i = "5"; 
    var j = "6"; 
    var reg1 = /^[0123456789]$/; 
    alert(reg1.test(j)); //false 
    alert(reg1.test(i)); //true 
    </script>