'36,85,89,'这种怎么用正则校验?

var reg = /[0-9,]*/;
var str = '69,89a';
var result = reg.test(str);
console.log(result);// true

上面的只要69校验到,就会返回true,后面的怎么处理?

阅读 1k
评论 2017-08-30 提问
    4 个回答
    ^([0-9],?)*$
    评论 赞赏
      mokeyWie
      • 2.1k

      ^(\d+,?)*$

      评论 赞赏
        var reg = /[0-9,]*/;

        你这么写的话,所有的值应该都会返回true


        '36,85,89,'这种合法的话,你可以这么写

        ^(?:\d+,)+$

        如果末尾的逗号不要的话,你可以这么写

        ^\d+(?:,\d+)*$

        如果末尾的逗号可以有,也可以不要的话,可以这么写

        ^(?:\d+,?)+$
        评论 赞赏
              //如果末尾的逗号不要的话,你可以这么写
              var reg = /^(\d+)(,\d+)*$/;
              console.log(reg.test("69"));//true
              console.log(reg.test("69,"));//false
              console.log(reg.test("69,222"));//true
              console.log(reg.test("69,22,222,"));//false
              console.log(reg.test("69,22,,222"));//false
              //如果末尾的逗号需要的话,你可以这么写
              var reg2 = /^(\d+,)+$/;
              console.log(reg2.test("69"));//false
              console.log(reg2.test("69,"));//true
              console.log(reg2.test("69,222"));//false
              console.log(reg2.test("69,22,222,"));//true
          评论 赞赏
            撰写回答

            登录后参与交流、获取后续更新提醒