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

之前长时间使用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,而且这个匹配的结果正好是要验证的字符串的话,就说明这个字符串是符合验证规则的。

 

以上这种方法是我现在能想到的最简洁的方式,有朋友有更好的方法的话,拜托留言交流一下,多谢!

 

你可能感兴趣的:(JavaScript,框架,正则表达式,struts,null,regex)