正则表达式怎么匹配`-,-,9,-,-`?

验证数据合法性,数据需要符合以下规则:
逗号分隔
只有一个数字(一位),其余的都是短横杠-
示例:
-,-,9,-,-
9,-,-,-,-
-,-,-,-,9
用正则怎么匹配啊?需要用到正则中的哪些概念?全都看有点晕
解决
这个是我在stackoverflow上的提问:
HowcanImatchthisstring'-,-,-,9,-'?
确实比较麻烦,如果单从正则角度来匹配有些不太适合
从其他角度解决应该会好一些~
谢谢大家~
aluckdog
浏览 792回答 2
2回答

吃鸡游戏

我写的这个,你上面举例的都能测试通过的。/(?:[\-\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

回首忆惘然

思路:1.先将数字转换为-2.匹配字符串-,javascriptvarstr='-,-,9,-,-';//varstr='9,-,-,-,-,-';//varstr='-,-,-,-,-,9';//varstr='-,-,-,1,-,9';/^(-,)*-$/.test(str.replace(/\d/,'-'));
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript