谢谢你,你的写法是正确的,我的想法是只能输入1/329749/4这样的结果才是正确的,但我输入aa1/329749/4cc 这样的结果也会匹配成功。设置它的length要等于10好像可以?(以后要遇到不定长的正则表达式不好办了),一般程序里面怎么处理的?还有别的方法吗?

解决方案 »

  1.   

    稍微改下就行
    var reg2=/(^\d\/\d{6}\/\d$)|(^\d{7}\(\d\)$)/g
      

  2.   

    var reg2=/(^\d\/\d{6}\/\d$)|(^\d{7}\(\d\)$)/g
    alert(reg2.test("aa1/329749/4cc"))
      

  3.   

    谢谢 正则表达式真是个好东西,那能不能让两端的空格不影响验证.
    允许  space1/329749/4spacespace  
    (space代表空格).这样的结果也通过验证呢?
      

  4.   

    1.正则加入判断
    var pattern =/(^\s+?\d\/\d{6}\/\d\s+?$)|(^\s+?\d{7}\(\d\)\s+?$)/g;
    2.先删除字符前后空格再匹配
    <script>
    function trims(str)
    {  //删除左右两端的空格
     return str.replace(/(^\s*)|(\s*$)/g, "");
    }
    str = '  1/329749/4    ';
    var pattern =/(^\d\/\d{6}\/\d$)|(^\d{7}\(\d\)$)/g;
    if(trims(str).match(pattern)) alert('pass');
    </script>
      

  5.   

    1.正则加入判断
    var pattern =/(^\s+?\d\/\d{6}\/\d\s+?$)|(^\s+?\d{7}\(\d\)\s+?$)/g;
    sorry,有误,改为
    var pattern =/(^(\s+)?\d\/\d{6}\/\d(\s+)?$)|(^(\s+)?\d{7}\(\d\)(\s+)?$)/g;