var reg = /(m|n)/;
var str = "m";
alert(reg.exec(str));这个执行执行结果怎么会是m,m

解决方案 »

  1.   

    你拿掉括号
    var reg = /m|n/;
      

  2.   

    加了括号,表示有一个捕获组,然后返回的结果里面,第一个是所有的匹配内容,即使没有捕获组
    试试正面的例子
    var reg = /ab(cd)/;
    var result = reg.exec('abcdefg');
    for(var i=0;i<result.length;i++)
    alert(result[i]);
      

  3.   

    reg.exec(str)或者是str.match(reg)返回的是一个数组(不管reg是否是全局搜索)具体的那就你自己随便拿本书看看就知道了
      

  4.   


    var reg = /(?:m|n)/;
    var str = "m";
    alert(reg.exec(str));非捕获匹配再看看。。