JavaScript正则表达式(页面范围验证)
昨天,我有一项任务要在用户可以输入他想要下载的页面范围的字段上实现验证 在阅读了一些教程之后,我创建了这样的模式,在我看来应该是可行的,但它没有:( 你能告诉我哪里出了错,或者怎样才能做得更好吗JavaScript正则表达式(页面范围验证),javascript,regex,Javascript,Regex,昨天,我有一项任务要在用户可以输入他想要下载的页面范围的字段上实现验证 在阅读了一些教程之后,我创建了这样的模式,在我看来应该是可行的,但它没有:( 你能告诉我哪里出了错,或者怎样才能做得更好吗 <script type="text/javascript"> var patt1=new RegExp("^(\s*\d+\s*\-\s*\d+\s*,?|\s*\d+\s*,?)+$"); document.write(patt1.test("1, 2, 3-5, 6, 8, 10-12
<script type="text/javascript">
var patt1=new RegExp("^(\s*\d+\s*\-\s*\d+\s*,?|\s*\d+\s*,?)+$");
document.write(patt1.test("1, 2, 3-5, 6, 8, 10-12"));
</script>
var patt1=new RegExp(“^(\s*\d+\s*\-\s*\d+\s*,?| \s*\d+\s*,?)+$”;
记录(第1部分测试(“1,2,3-5,6,8,10-12”);
请注意,您可以在此处进行测试:
更多示例:
- 1场比赛
- 1-2比赛
- -2不匹配
- 1,2-3,4,5-7的比赛
- 1、2、3不匹配
- 1-2-2不匹配
^(\d+(-\d+)?)(,\d+(-\d+)?)*$
要在两个文件之间允许空白,可以执行以下操作:
^(\s*\d+\s*(-\s*\d+\s*)?)(,\s*\d+\s*(-\s*\d+\s*)?)*$
您需要转义字符串中的反斜杠,否则JavaScript会将其去掉或将其解释为转义序列:
var patt1 = new RegExp("^(\\s*\\d+\\s*\\-\\s*\\d+\\s*,?|\\s*\\d+\\s*,?)+$");
^(\\d+(\-\\d+),?)*(\\d+(\-\\d+)++$
您可以使用正则表达式literal
来定义patt1
,而不使用新的RegExp
。否则,您必须转义正则表达式字符串中的所有'\'
现在
patt1.test(“1,2,3-5,6,8,10-12”)
应该计算为true
,patt1.test(“1,2,3-5,6,8,10-12,nocando”)
到false请提供更多示例。见鬼,是的!这就是我缺少的!您的规则:)这个RegExp匹配1-2-2格式。查看下面的@codaddict解决方案。也谢谢你,现在我知道了区别。
var patt1 = /^(\s*\d+\s*\-\s*\d+\s*,?|\s*\d+\s*,?)+$/g;