码迷,mamicode.com
首页 > Web开发 > 详细

js 常用正则

时间:2016-09-09 16:33:38      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:

2016-09-09

技术分享
整数或者小数:

^[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-XXXXX

XX""XXXX-XXXXXXXX""XXX-XXXXXXX""XXX-XXXXXXXX""XXXXXXX""XXX

XXXXX"

。

 

验证身份证号(

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))+RegEx

p.$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- ./?%&=]*)?

 

 

 

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

 

 

用正则表达式限制只能输入中文:

onkeyup="value=value.replace(/[^\u4E00-\u

9FA5]/g,‘‘)" onbeforepaste="clipboardData.setData(‘text‘,clipboard

Data.getData(‘text‘).replace(/[^\u4E00-\u9FA5]/g,‘‘))"

 

 

用正则表达式限制只能输入全角字符:

 onkeyup="value=value.replace(/[^\uFF0 


0-\uFFFF]/g,‘‘)" onbeforepaste="clipboardData.setData(‘text‘,clipb

oardData.getData(‘text‘).replace(/[^\uFF00-\uFFFF]/g,‘‘))"

 

 

用正则表达式限制只能输入数字:

onkeyup="value=value.replace(/[^\d]/g,‘‘)

 "onbeforepaste="clipboardData.setData(‘text‘,clipboardData.getDat

a(‘text‘).replace(/[^\d]/g,‘‘))"

 

 

用正则表达式限制只能输入数字和英文:

onkeyup="value=value.replace(/[\W]/g,

‘‘) "onbeforepaste="clipboardData.setData(‘text‘,clipboardData.get

Data(‘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]*

 

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

 
js 常用正则

常用的正则表达式,需要的拿去

js 常用正则

标签:

原文地址:http://www.cnblogs.com/zhangwei91/p/5856909.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!