验证的话用 /^\d{2,4}\-\d{7,8}$/.test(telNo);
匹配的话用 telNo.match(/^\d{2,4}\-\d{7,8}$/);  这个结果是个数组,你是不是直接显示结果了,而不是显示数组的第一个元素

解决方案 »

  1.   

    首先,你要说你要干什么,还要把代码贴一下才好。
    我测了一下,
    var test="010-87120121";
    window.alert(test.match(/^\d{2,4}-\d{7,8}$/g));
    输出结果正确。
    如果你要是有多个匹配的话,你要是想输出,得循环输出
    var ret=test.match(/^\d{2,4}-\d{7,8}$/g);ret中的值。
      

  2.   

    具体代码如下:
    function matchTest(obj)
          {
                var str=obj.value
                
               
                document.write (str.match(/^\d{2,4}\-\d{7,8}$/));
                if(str.match(/^\d$/)==null||str.match(/^\d$/)=='')
                {
                    alert("请输入数字");
                    return ;
                }
                else
                {
                     alert(str.match(/^\d$/);
                }
              
          }
    如果用户输入值,那我就执行这个函数,然后弹出正确的值
      

  3.   


    //像这样的输入010-87120121
    //if(str.match(/^\d$/)==null||str.match(/^\d$/)=='')这句话只能匹配全为数字的