邀朋友种豆,一起分享吧
喜欢购买正品行货?那就去品牌街

超经典正则表达式20例

来自:种豆 时间:2017-12-29 阅读:374次 原文链接
以下是收集的经典的能匹配Html标记、Email、网址、中文、电话号码、身份证号码、用户密码、IP地址、文件路径等功能的正则表达式。
1.匹配HTML标记的正则表达式/<(.*)>.*<///1>|<(.*) //>/
2.匹配Email地址的正则表达式/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*
^\w+[-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
3.匹配网址URL的正则表达式http://([/w-]+/.)+[/w-]+(/[/w- ./?%&=]*)?
^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
4.匹配空行的正则表达式/n[/s| ]*/r
5.匹配中文字符的正则表达式[^/x00-/xff]
6.匹配电话号码的正则表达式(假如格式为 XXXX-XXXXXXX,XXXX-XXXXXXXX,XXX-XXXXXXX,XXX-XXXXXXXX,XXXXXXX,XXXXXXXX)^(\(\d{3,4}\)|\d{3,4}-)?\d{7,8}$
7.匹配身份证号码的正则表达式(15位或18位数字)^\d{15}|\d{}18$
8.匹配用户密码的正则表达式(假如以字母开头,长度在6-18之间,只能包含字符、数字和下划线)^[a-zA-Z]\w{5,17}$
9.匹配一年的12个月的正则表达式(“01”-“09”和“1”“12”)^(0?[1-9]|1[0-2])$
10.匹配一个月的31天的正则表达式(01、09和1、31)^((0?[1-9])|((1|2)[0-9])|30|31)$
11.匹配汉字的正则表达式^[\u4e00-\u9fa5],{0,}$
12.验证是否含有 ^%&',;=?$\" 等特殊字符[^%&',;=?$\x22]+
13.匹配双字节字符(包括汉字在内)的正则表达式String.prototype.len=function(){return this.replace([^/x00-/xff]/g,"aa").length;}应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
14.匹配首尾空格的正则表达式(^/s*)|(/s*$)应用:javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现,如下:String.prototype.trim = function()
{
  return this.replace(/(^/s*)|(/s*$)/g, "");
}

15.利用正则表达式分解和转换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.168"
ip
=ip.split(".")
alert(
"IP值是:"+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))
16.去除重复字符的方法,使用后向引用取出包括重复的字符,再以重复的字符建立第二个表达式,取到不重复的字符,两者串连。这个方法对于字符顺序有要求的字符串可能不适用。得用正则表达式从URL地址中提取文件名的javascript程序,如下结果为mallss="http://www.sowsoy.com/malls.html"
s
=s.replace(/(.*//){0,}([^/.]+).*/ig,"$2")
alert(s)去除字串中重复的字符的正则表达式应该是: /(.)/1+/$1/gi
以下为利用正则表达式限制网页表单里的文本框输入内容17.用正则表达式限制只能输入中文onkeyup="value=value.replace(/[^/u4E00-/u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/u4E00-/u9FA5]/g,''))"
18.用正则表达式限制只能输入全角字符onkeyup="value=value.replace(/[^/uFF00-/uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/uFF00-/uFFFF]/g,''))"
19.用正则表达式限制只能输入数字onkeyup="value=value.replace(/[^/d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/d]/g,''))"
20.用正则表达式限制只能输入数字和英文onkeyup="value=value.replace(/[/W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/d]/g,''))"
21.将路径字符串拆分为根目录和子目录两部分的算法程序,考虑路径格式有:C:/aa/bb/cc , //aa/bb/cc , ftp://aa.bb/cc 上述路径将分别被拆分为:C:/和aa/bb/cc ,//aa 和 /bb/cc , ftp:// 和 aa.bb/cc ,用javascript实现如下:var strRoot,strSub
var regPathParse
=/^([^//^//]+[////]+|////[^//]+)(.*)$/ <br>if(regPathParse.test(strFolder))
{
strRoot
=RegExp.$1
strSub
=RegExp.$2
}




 
关于种豆 ┊ 联系我们 ┊ 免责声明 ┊ 发帖须知 ┊ 请提意见 ┊ 站点地图
本站为个人爱好兴趣分享网站,不代表本人观点,如有侵权请联系QQ3033380280进行处理
sowsoy.com 版权所有 Copyright©2010-2021 备案号:蜀ICP备2020025376号-3
Email:sowsoy#hotmail.com