昨天我有一个任务是在用户可以输入他想要下载的页面范围的字段上实现验证.
在阅读了一些教程之后,我创建了这样的模式,在我看来应该可行,但它没有:(
<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>
附:你可以在这里测试它:http://www.w3schools.com/js/tryit.asp?filename=tryjs_regexp_test
更多例子:
> 1场比赛
> 1-2比赛
> -2不匹配
> 1,2-3,4,5-7匹配
> 1 2,3不匹配
> 1-2-2不匹配
等……就像在MS Office或Adobe PDF Reader中一样
解决方法
您需要转义字符串中的反斜杠,否则JavaScript会将它们删除或将它们解释为转义序列:
var patt1 = new RegExp("^(\\s*\\d+\\s*\\-\\s*\\d+\\s*,?|\\s*\\d+\\s*,?)+$");