【发布时间】:2016-03-16 05:49:33
【问题描述】:
使用以下正则表达式模式,以下数字范围匹配或不匹配,这符合预期。我遇到的唯一问题是当我的范围为 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*,?)+$");
【问题讨论】:
-
这个works fine 当我测试它时。请澄清您正在测试的确切字符串。
-
可能是导致问题的 \\- ,\- 无效。你可以把它写成 var patt1 = /^(\s*\d+\s*\-\s*\d+\s*,?|\s*\d+\s*,?)+$/;
-
您的模式也适用于我使用“2-10”。就像 /^(\s*\d+\s*-\s*\d+\s*,?|\s*\d+\s*,?)+$/ 和 /^(\s*\d+\s *\-\s*\d+\s*,?|\s*\d+\s*,?)+$/
-
@GregL 是的,你是对的,模式应该可以工作,我发现了另一个问题,我正在检查两个字符串值“2”>“10”,这是失败的!
标签: javascript regex validation range