(new RegExp("("+ n +")").test(format))
谁帮我理解下 RegExp("("+ n +")") 括弧里的含义哦

解决方案 »

  1.   

    验证format字符串是否符合 (数字) 规则
    比如(new RegExp("(1)").test(1))  返回true
    (new RegExp("(1)").test(2))  返回false
      

  2.   

    那为什么不可以
    (new RegExp(n).test(format)) 这样写哦?
      

  3.   

    这里的括号作为一个子匹配。。在后面可以使用\1进行反向引用
    你这个表达式有没括号都可以。。
    可以写成:(new RegExp(""+ n +"").test(format))
    但是不能写成:(new RegExp(n).test(format))
    因为正则表达式首先本身就是一个字符串
      

  4.   

    但是
    (new RegExp(n).test(format)) 中 的变量n就是代表字符串呀,为什么不可以哦?
      

  5.   

    我的理解是js是一种弱语言。。你
    var n = document.getElementById("n").value;
    这种方式获得的n不会默认为字符串。。你可以试试
    var n = document.getElementById("n").value + "";
    看行不