<script language='Javascript'>
test();function test()
{
   var tmp;
   tmp = 'a2';
   var re = /^a(\d+)$/;
   re.exec(tmp);
   alert(RegExp.$1);//这一行我想得到2,但得不到.为什么?
}
</script>

解决方案 »

  1.   

    <script language='Javascript'>
    test();function test()
    {
       var tmp;
       tmp = 'a2';
       var re = new RegExp("^a(\\d+)$");
       re.exec(tmp);
       alert(RegExp.$1);//这一行我想得到2,但得不到.为什么?
    }
    </script>用new RegExp构造时,参数是字符串所以,"\"要用"\\"表示.
      

  2.   

    function test()
    {
       var tmp;
       tmp = 'a2';
       var re = new RegExp(/^a(\d+)$/);
       re.exec(tmp);
       alert(RegExp.$1);
    }
      

  3.   

    function test()
    {
       var tmp;
       tmp = 'a2';
       var r = tmp.match(/^a(\d+)$/)
       if(r) alert(r[1]);
    }