JavaScript正则表达式(页面范围验证)

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

在阅读了一些教程之后,我创建了这样的模式,在我看来应该可行,但它没有:(

你能否给我一个提示,说明错误在哪里,或者以更好的方式完成.

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

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...