Advertisement

Java正则表达式分析和构建

  • 5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:DOC


简介:
正则模式匹配用于对文本框输入字段的内容进行管理….. 默认分类 2009-02-13 10:10 阅读26 评论0 字号: 大大 中中 小小整数或者小数:^[0-9]+.{0,1}[0-9]{0,2}$只能输入数字:^[0-9]*$。只能输入n位的数字:^d{n}$。只能输入至少n位的数字:^d{n,}$。只能输入m~n位的数字:。^d{m,n}$只能输入零和非零开头的数字:^(0|[1-9][0-9]*)$。只能输入有两位小数的正实数:^[0-9]+(.[0-9]{2})?$。只能输入有1~3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$。只能输入非零的正整数:^+?[1-9][0-9]*$。只能输入非零的负整数:^-[1-9][]0-9*$。只能输入长度为3的字符:^.{3}$。只能输入由26个英文字母组成的字符串:^[A-Za-z]+$。只能输入由26个大写英文字母组成的字符串:^[A-Z]+$。只能输入由26个小写英文字母组成的字符串:^[a-z]+$。只能输入由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$。只能输入由数字、26个英文字母或者下划线组成的字符串:^w+$。验证用户密码:^[a-zA-Z]w{5,17}$正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。验证是否含有^%&,;=?$等字符:[^%&,;=?$x22]+。只能输入汉字:^[u4e00-u9fa5]{0,}$验证Email地址:^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$。验证InternetURL:^http:([w-]+.)+[w-]+([w-.?%&=]*)?$。验证电话号码:^((d{3,4}-)|d{3.4}-)?d{7,8}$正确格式为:XXX-XXXXXXX、XXXX-XXXXXXXX、XXX-XXXXXXX、XXX-XXXXXXXX、XXXXXXX和XXXXXXXX。验证身份证号(15位或18位数字):^d{15}|d{18}$。验证一年的12个月:^(0?[1-9]|1[0-2])$正确格式为:01~09和1~12。验证一个月的31天:^((0?[1-9])|((1|2)[0-9])|30|31)$正确格式为;01~09和1~31。匹配中文字符的正则表达式: [u4e00-u9fa5] 匹配双字节字符(包括汉字在内):[^x00-xff] 应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)String.prototype.len=function(){return this.replace([^x00-xff]g,aa).length;} 匹配空行的正则表达式:n[s| ]*r 匹配html标签的正则表达式:<(.*)>(.*)<(.*)>|<(.*)> 匹配首尾空格的正则表达式:(^s*)|(s*$) 应用:javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现,如下: String.prototype.trim = function(){return this.replace((^s*)|(s*$)g, );} 利用正则表达式分解和转换IP地址: 下面是利用正则表达式匹配IP地址,并将IP地址转换成对应数值的Javascript程序: function IP2V(ip){re=(d+).(d+).(d+).(d+)g 匹配IP地址的正则表达式if(re.test(ip)){return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1}else{throw new Error(Not a valid IP address!)}} 不过上面的程序如果不用正则表达式,而直接用split函数来分解可能更简单,程序如下: var ip=10.100.20.168ip=ip.split(.)alert(IP值是:+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1)) 匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)* 匹配网址URL的正则表达式:http:([w-]+.)+[w-]+([w- .?%&=]*)? 利用正则表达式限制网页表单里的文本框输入内容: 用正则表达式限制只能输入中文:onkeyup=value=value.replace([^u4E00-u9FA5]g,) onbeforepaste=clipboardData.setData(text,clipboardData.getData(text).replace([^u4E00-u9FA5]g,)) 用正则表达式限制只能输入全角字符: onkeyup=value=value.replace([^uFF00-uFFFF]g,) onbeforepaste=clipboardData.setData(text,clipboardData.getData(text).replace([^uFF00-uFFFF]g,)) 用正则表达式限制只能输入数字:onkeyup=value=value.replace([^d]g,) onbeforepaste=clipboardData.setData(text,clipboardData.getData(text).replace([^d]g,)) 用正则表达式限制只能输入数字和英文:onkeyup=value=value.replace([W]g,) onbeforepaste=clipboardData.setData(text,clipboardData.getData(text).replace([^d]g,))