如何用javascript正则验证诸如1,2,3-10,11,12-20,21,22这样字符串的合法性

3-10 12-20 这样表示范围的子串可以出现在串头/串中/串尾,规则与规则之间用,分隔

阅读 1.6k
2 个回答
const reg=/^\d+(?:-\d+)?(?:,\d+(?:-\d+)?)*$/;
    var strs=[
        '1,2,3-10,11,12-20,21,22',
        '22',
        '22,22-10',
        '22-10,22',
        '22,',
        '22,22'
    ]
    console.log(strs.map(item=>reg.test(item)));

不是特别明白你的意思

/^(?:[1-9]\d*|0)(?:-(?:[1-9]\d*|0))?(?:,(?:[1-9]\d*|0)(?:-(?:[1-9]\d*|0))?)*$/
推荐问题