昨天,我有一项任务是在用户可以输入要下载的页面范围的字段上实现验证。

在阅读了一些教程之后,我创建了一种我认为应该可以使用的模式,但是它不是:(

您能给我一个提示,指出哪里出了错误,或者应该如何更好地解决。

<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*,?)+$");
    

    09-05 22:36