标签: javascript regex
我有一个正则表达式,匹配数字1,7和99的任意组合,以逗号分隔。例如。这些应该匹配:
1 1,7 1,99 99,1,7
虽然这些不匹配:
1, 8 8,99 ,7 1,7,99,
以下工作正常,但可能会缩短并提高效率?
/^(1|7|99)(,?(1|7|99)(,?(1|7|99))?)?$/
答案 0 :(得分:2)
您可以使用基于前瞻性的正则表达式:
/^(1|7|99)(?!.*?,\1)(?:,(?:1|7|99))*$/gm
答案 1 :(得分:1)
/^(1|7|99)(,(1|7|99))*$/
使用rubular
答案 2 :(得分:0)
修改@ RidesTheShortBus的答案对所有测试用例都很有效
^(1|7|99)(,(1|7|99){1})*$
测试here