一、
1、new RegExp("^[0-9]+$" ).test("12") 结果是 true
2、new RegExp("^\d+$" ).test("12") 结果是 false
这两个正则的区别是什么?
二、
1、/^(-?\d+)(\.\d+)?$/.test("1.2") 结果是 true
2、new RegExp("^(-?\d+)(\.\d+)?" ) 结果是 false
 这两个的区别又是什么?

解决方案 »

  1.   

    1、new RegExp("^[0-9]+$" ).test("12") 结果是 true 
    2、new RegExp("^\d+$" ).test("12") 结果是 false 里面使用"^\\d+$",使用new RegExp创建正则表达式对象时\需要转义,或者直接/^\d+$/就不需要转义\了二,上面已经说了转义的问题
      

  2.   

    new RegExp("^\d+$" ).test("12") 需要转义 new RegExp("^\\d+$" ).test("12"),下面的一样
      

  3.   

    new RegExp("^\\d+$").test("12")
    new RegExp("^(-?\\d+)(\\.\\d+)?")
    字符串中 \ 要转为 \\
      

  4.   

    一、 
    1、new RegExp("^[0-9]+$" ).test("12") 结果是 true 
    2、new RegExp("^\d+$" ).test("12") 结果是 false 
    这两种形式得到的结果其实是一样的,第二种形式得到结果之所以是false是由于你没有把特殊符号\转义。
    你要这样用:2、new RegExp("^\\d+$" ).test("12") 结果是 true