验证数据合法性,数据需要符合以下规则:逗号分隔只有一个数字(一位),其余的都是短横杠-示例:-,-,9,-,-9,-,-,-,--,-,-,-,9用正则怎么匹配啊?需要用到正则中的哪些概念?全都看有点晕解决这个是我在stackoverflow上的提问:HowcanImatchthisstring'-,-,-,9,-'?确实比较麻烦,如果单从正则角度来匹配有些不太适合从其他角度解决应该会好一些~谢谢大家~
2 回答
吃鸡游戏
TA贡献1829条经验 获得超7个赞
我写的这个,你上面举例的都能测试通过的。/(?:[\-\d],)+[\-\d]/更简洁的:/([\-\d],)+[\-\d]/UPDATE:要求是只能是一位数字:所以这个或许会好一点:/^(\-,)*\d(,\-)*$/给出的测试案例:/^(\-,)*\d(,\-)*$/.test("-,-,-,-,9");//true/^(\-,)*\d(,\-)*$/.test("9,-,-,-,-");//true/^(\-,)*\d(,\-)*$/.test("-,-,9,-,-");//true/^(\-,)*\d(,\-)*$/.test("-,-,9,-,-,9");//false/^(\-,)*\d(,\-)*$/.test("-,-,9,9,-,-");//false/^(\-,)*\d(,\-)*$/.test("99,-,-,-,-");//false/^(\-,)*\d(,\-)*$/.test("9,9,-,-,-");//false
回首忆惘然
TA贡献1847条经验 获得超11个赞
思路:1.先将数字转换为-2.匹配字符串-,javascriptvarstr='-,-,9,-,-';//varstr='9,-,-,-,-,-';//varstr='-,-,-,-,-,9';//varstr='-,-,-,1,-,9';/^(-,)*-$/.test(str.replace(/\d/,'-'));
添加回答
举报
0/150
提交
取消