匹配正则表达式js常用正则表达式

本文朋友在北京喝咖啡的时候突然想到的...这段时间就有想写几篇关于匹配正则表达式的文章,所以回家到之后就奋笔疾书的写出来发布了

    

整数或者数小:^[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.168"
ip=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- ./?%&=]*)?


利用正则表达式制限网页表单里的文本框输入内容:

用正则表达式制限只能输入中文:οnkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"

用正则表达式制限只能输入全角符字: οnkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))"

用正则表达式制限只能输入数字:οnkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"

用正则表达式制限只能输入数字和英文:οnkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"

 

 

    匹配中文符字的正则表达式: [\u4e00-\u9fa5]

    评注:匹配中文还真是个头疼的事,有了这个表达式就好办了

     

    匹配双节字符字(包括汉字在内):[^\x00-\xff]

    评注:可以用来算计符字串的长度(一个双节字符字长度计2,ASCII符字计1

     

    匹配空白行的正则表达式:\n\s*\r

    评注:可以用来删除空白行

     

    匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?|<.*? />

    评注:网上传流的本版太糕糟,面上这个也仅仅能匹配部份,对于杂复的嵌套标记照旧力为能无

     

    匹配首尾空白符字的正则表达式:^\s*|\s*$

    评注:可以用来删除首行行尾的空白符字(包括空格、制表符、换页符等等),非用常有的表达式

     

    匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

    评注:表单证验时很适用

     

    匹配网址URL的正则表达式:[a-zA-z]+://[^\s]*

    评注:网上传流的本版能功很无限,面上这个基本可以满意需求

     

    匹配帐号是不是正当(母字扫尾,答应5-16节字,答应母字数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$

    评注:表单证验时很适用

     

    匹配海内电话号码:\d{3}-\d{8}|\d{4}-\d{7}

    评注:匹配情势如 0511-4405222 或 021-87888822

     

    匹配腾讯QQ号:[1-9][0-9]{4,}

    评注:腾讯QQ号从10000开始

     

    匹配中国邮政编码:[1-9]\d{5}(?!\d)

    评注:中国邮政编码为6位数字

     

    匹配身份证:\d{15}|\d{18}

    评注:中国的身份证为15位或18

    每日一道理
人生好似一条河,既有波澜壮阔,汹涌澎湃,也有清风徐来,水波不兴;人生好似一首歌,既有欢乐的音符,也有悲壮的旋律;人生好似一条船,既有一帆风顺时,也有急流险滩处。愿我们都能勇于经受暴风雨的洗礼,接受生活的挑战和考验!

     

    匹配ip地址:\d+\.\d+\.\d+\.\d+

    评注:取提ip地址时用有

     

    匹配特定数字:

    ^[1-9]\d*$ //匹配正整数

    ^-[1-9]\d*$ //匹配负整数

    ^-?[1-9]\d*$ //匹配整数

    ^[1-9]\d*|0$ //匹配非负整数(正整数 + 0

    ^-[1-9]\d*|0$ //匹配非正整数(负整数 + 0

    ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ //匹配正浮点数

    ^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ //匹配负浮点数

    ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$ //匹配浮点数

    ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$ //匹配非负浮点数(正浮点数 + 0

    ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$ //匹配非正浮点数(负浮点数 + 0

    评注:理处量大数据时用有,体具应用时注意修正

     

    匹配特定符字串:

    ^[A-Za-z]+$ //匹配由26个英文母字构成的符字串

    ^[A-Z]+$ //匹配由26个英文母字的大写构成的符字串

    ^[a-z]+$ //匹配由26个英文母字的小写构成的符字串

    ^[A-Za-z0-9]+$ //匹配由数字和26个英文母字构成的符字串

    ^\w+$ //匹配由数字、26个英文母字或者下划线构成的符字串

    评注:最基本也是最用常的一些表达式

     

    整理出来的一些用常的正则表达式所属分类: JScript  ()

    Email : /^\w+([-+.]\w+)*@\w+([-.]\\w+)*\.\w+([-.]\w+)*$/

    isEmail1 : /^\w+([\.\-]\w+)*\@\w+([\.\-]\w+)*\.\w+$/;

    isEmail2 : /^.*@[^_]*$/;

    Phone : /^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}$/

    Mobile : /^((\(\d{3}\))|(\d{3}\-))?13\d{9}$/

    Url : /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/

    IdCard : /^\d{15}(\d{2}[A-Za-z0-9])?$/

    Currency : /^\d+(\.\d+)?$/

    Number : /^\d+$/

    Code : /^[1-9]\d{5}$/

    QQ : /^[1-9]\d{4,8}$/

    Integer : /^[-\+]?\d+$/

    Double : /^[-\+]?\d+(\.\d+)?$/

    English : /^[A-Za-z]+$/

    Chinese : /^[\u0391-\uFFE5]+$/

    UnSafe : /^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|\s/

    PassWord :^[\\w]{6,12}$

    ZipCode : ^[\\d]{6}

    /^(\+\d+ )?(\(\d+\) )?[\d ]+$/; //这个是国际通用的电话号码断判

    /^(1[0-2]\d|\d{1,2})$/; //这个是龄年的断判

    /^\d+\.\d{2}$/;  //这个是断判输入的是不是为货币值

     <!-- IP地址有效性证验函数-->

     <script language=javascript runat=server>

        ip_ip = '(25[0-5]|2[0-4]\\d|1\\d\\d|\\d\\d|\\d)';

        ip_ipdot = ip + '\\.';

        isIPaddress = new RegExp('^'+ip_ipdot+ip_ipdot+ipdot+ip_ip+'$');

    </script>

    应用:算计符字串的长度(一个双节字符字长度计2,ASCII符字计1

    String.prototype.len=function(){return this.replace([^\x00-\xff]/g,"aa").length;}

    应用:javascript中没有像vbscript那样的trim函数,我们以可就利用这个表达式来实现,如下:

    String.prototype.trim = function()

    {

        return this.replace(/(^\s*)|(\s*$)/g, "");

    }

    匹配空行的正则表达式:\n[\s| ]*\r

    匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/

    匹配首尾空格的正则表达式:(^\s*)|(\s*$)

    匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

    匹配网址URL的正则表达式:http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?

     

    ^\d+$ //匹配非负整数(正整数 + 0

    ^[0-9]*[1-9][0-9]*$ //匹配正整数

    ^((-\d+)|(0+))$ //匹配非正整数(负整数 + 0

    ^-[0-9]*[1-9][0-9]*$ //匹配负整数

    ^-?\d+$ //匹配整数

    ^\d+(\.\d+)?$ //匹配非负浮点数(正浮点数 + 0

    ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$ //匹配正浮点数

    ^((-\d+(\.\d+)?)|(0+(\.0+)?))$ //匹配非正浮点数(负浮点数 + 0

    ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$ //匹配负浮点数

    ^(-?\d+)(\.\d+)?$

文章结束给大家分享下程序员的一些笑话语录: 看新闻说中国输入法全球第一!领先了又如何?西方文字根本不需要输入法。一点可比性都没有。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值