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

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

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

阅读 2.5k
4 个回答
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
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏