小弟最近刚刚接触正则表达式,碰到问题不太会解决
求高手帮忙~要求如下:
输入一个字符串,要求验证字符串的格式格式为 XX-XXXXXX前两位必须是数字第三位是 -(减号),后六位是数字;
这种格式的字符串可以是一个或多个,中间用 (全角逗号、顿号或半角逗号隔开)只支持以下格式
00-000000,01-000000,02-00001200-000000,01-000000,02-00001200-000000、01-000000、02-000012其他的都报格式错误请求诸位高手帮助......

解决方案 »

  1.   

    /^\d{2}-\d{6}(\s*[,,、]\s*\d{2}-\d{6})*$/gm
      

  2.   

    ^(\d{2}-\d{6})((,|,|、)\d{2}-\d{6})*$
      

  3.   

    //返回数值,如果是你说的格式,返回true,不是返回false
     function check(str)
           {
              var arrCheckString = str.split(/[,,、]/);//支持全角逗号、顿号或半角逗号
              for(var i=0;i<arrCheckString .length;i++)  
              {
                 if(!/^[0-9]{2}-[0-9]{6}$/.test(arrCheckString[i]))
                 {
                   return false;
                 }
              }
            return true;
          }
      

  4.   

    匹配单个是这样
    \d{2}-\d{6}
    前面在加上多个并用逗号分开就是其中英文逗号是“,”,全角逗号是“\uff04c”,顿号有多种其中一种是“\ufe51”^(\d{2}-\d{6}[,\uff04c\ufe51])*\d{2}-\d{6}$这个没经过测试,大体不会有什么出入,谁有空可以调一下