具体代码如下:
var str="010-8712123";
alert (str.match(/^([0-9]{2,4}\-?)?[0-9]{7,8}$/));

解决方案 »

  1.   

    str.match(/^([0-9]{2,4}\-?)?[0-9]{7,8}$/)的结果是一个数组,数组的第一个元素是正则匹配的字符,其他元素为子项
    你这个结果应该是 ["010-87120121","010-"] 
    你试一下alert (str.match(/^([0-9]{2,4}\-?)?[0-9]{7,8}$/)[0]);看看结果
    在你的前一个帖子中已经说了,貌似你没看?
      

  2.   


    010- 是由([0-9]{2,4}\-?)捕获的//大概知道你要什么了
    //试试看 这个代码
    function fun3(){
    var str="010-8712123";
    var regex=/^(?:[0-9]{2,4}\-?)?[0-9]{7,8}$/;
    if(regex.test(str)){
    alert(RegExp.lastMatch);
    }
    }
    //或者 你的正则改一下
    //alert (str.match(/^([0-9]{2,4}\-?)?[0-9]{7,8}$/));
    alert (str.match(/^(?:[0-9]{2,4}\-?)?[0-9]{7,8}$/));
      

  3.   

    修改3楼的
    //倒。代码块里,无法使用颜色
    //alert (str.match(/^(?:[0-9]{2,4}\-?)?[0-9]{7,8}$/));//alert (str.match(/^([0-9]{2,4}\-?)?[0-9]{7,8}$/));
    alert (str.match(/^(?:[0-9]{2,4}\-?)?[0-9]{7,8}$/));
      

  4.   

    var str="010-8712123"; 
    var regex = /^([0-9]{2,4}\-?)?[0-9]{7,8}$/;
    alert(regex.test(str);