您的位置:首页 > Web前端 > JavaScript

javascript中使用正则表达式的一例 - 判断页码范围

2009-05-31 19:02 495 查看
之前长时间使用struts框架进行验证,一直是在validation.xml中配置正则表达式来实现的。只要配置了正确的正则表达式,剩下的过程全都不要关心,这一切全部是在server端由struts框架完成的,至于其中具体的验证过程却一直没有仔细的了解过,应该是利用了jdk中的regex相关的类。

最近有业务要求必须在页面无刷新的情况下完成验证。想了一下,在不考虑使用ajax的情况下,只有使用javascript来完成这个验证过程了。

在调查了javascript中正则表达式相关的几个method之后,决定使用RegExp类和string.match()来完成这个验证过程。

function isValidPageNum(str) {
str = str.replace(/ /g, "");
var pageNumberRegExp = new RegExp("(//d+(-//d+)?)(,//d+(-//d+)?)*,?", "g");
var result = str.match(pageNumberRegExp);
if (result != null && result.length == 1 && result[0] == str) {
return true;
}
return false;
}


本次是要完成一个关于页码范围的验证。就是我们使用word文档进行打印的时候,页码的选择范围。在这个输入框中我们可以只选择想打印的page,可以输入具体的页码(如:3)也可以使用范围(如:3-5)。而且可以使用“,"来连接多个选项。

首先是声明一个全局检索的正则表达式对象pageNumRegExp。然后调用string的match()方法。这个方法返回一个数组,包含所有匹配的字符串。在不匹配的时候会返回null。所以使用的判断逻辑就是,如果返回结果不为null,并且数组长度为1,而且这个匹配的结果正好是要验证的字符串的话,就说明这个字符串是符合验证规则的。

以上这种方法是我现在能想到的最简洁的方式,有朋友有更好的方法的话,拜托留言交流一下,多谢!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: