使用以下正则表达式模式,以下数字范围匹配或不匹配,这是正常的预期。我遇到的唯一问题是当我的范围为2-10或8-12(单个数字到两位数)时,此模式不匹配
实施例
1场比赛
1-2比赛
-2不匹配
1,2-3,4,5-7匹配
1 2,3不匹配
1-2-2不匹配
10-15匹配
2-10不匹配 //这应匹配但不匹配以下模式
var patt1 = new RegExp("^(\\s*\\d+\\s*\\-\\s*\\d+\\s*,?|\\s*\\d+\\s*,?)+$");
答案 0 :(得分:1)
我认为你需要这个:
^((?:\d+(?:-\d+)*)(?:,\s(?:\d+(?:-\d+)*))*)$
输入
1
1-2
-2
1, 2-3, 4, 5-7
1 2, 3
1-2-2
10-15
2-10
输出
MATCH 1
1. `1`
MATCH 2
1. `1-2`
MATCH 3
1. `1, 2-3, 4, 5-7`
MATCH 4
1. `1-2-2`
MATCH 5
1. `10-15`
MATCH 6
1. `2-10`