1. 程式人生 > >input常用的正則表示式JS

input常用的正則表示式JS

正則表示式字元的意義:

[ ]:範圍描述符。[a-z]表示從a到z之間的任意一個。

\w:英文字母和數字。即[0-9 A-Z a-z]。 \W:非英文字母和數字 \s:空字元,即[\t\n\r\f]。 \S:非空字元。 \d:數字,即[0-9]。 \D:非數字。 \b:詞邊界字元(在範圍描述符外部時) \B:非詞邊界字元 \b:退格符(0x08)(在範圍描述符內部時) *:前面元素出現0次以上 +:前面元素出現1次以上 {m,n}:前面元素最少出現m次,最多出現n次
?:前面元素出現0次或1次 |:選擇 ( ):群組

"a.[0-9]":表示一個字串有一個"a"後面跟著一個任意字元和一個數字;

"^.{3}$":表示有任意三個字元的字串(長度為3個字元);

方括號表示某些字元允許在一個字串中的某一特定位置出現:

"[ab]":表示一個字串有一個"a""b"(相當於"a¦b");

"[a-d]":表示一個字串包含小寫的'a''d'中的一個(相當於"a¦b¦c¦d"或者"[abcd]");

"^[a-zA-Z]":表示一個以字母開頭的字串;

"[0-9]%":表示一個百分號前有一位的數字;

",[a-zA-Z0-9]$"

:表示一個字串以一個逗號後面跟著一個字母或數字結束。


常用正則表示式:

匹配中文字元的正則表示式: [\u4e00-\u9fa5]

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

匹配IP地址的正則表示式:/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //

"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$"    //email地址 


"^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$"  //url


/^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/   //  年-月-日


/^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/   // 月/日/年


"^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$"   //Emil


"(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?"     //電話號碼

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

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

1、非負整數:^\d+$ 

2、正整數:^[0-9]*[1-9][0-9]*$ 

3、非正整數:^((-\d+)|(0+))$ 

4、負整數:^-[0-9]*[1-9][0-9]*$ 

5、整數:^-?\d+$ 

6、非負浮點數:^\d+(\.\d+)?$ 

7、正浮點數:^((0-9)+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$ 

8、非正浮點數:^((-\d+\.\d+)?)|(0+(\.0+)?))$ 

9、負浮點數:^(-((正浮點數正則式)))$ 

10、英文字串:^[A-Za-z]+$ 

11、英文大寫串:^[A-Z]+$ 

12、英文小寫串:^[a-z]+$ 

13、英文字元數字串:^[A-Za-z0-9]+$ 

14、英數字加下劃線串:^\w+$ 

15、E-mail:^([a-zA-Z0-9_\.-]+)@([\da-zA-Z\.-]+)\.([a-zA-Z\.]{2,6})$

16、URL:^[a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\s*)?$ 

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

17、郵政編碼:^[1-9]\d{5}$

18、中文:^[\u0391-\uFFE5]+$

19、電話號碼:^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$

20、手機號碼:^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$

^(0|86|17951)?(13[0-9]|15[012356789]|17[0-9]|18[0-9]|14[0-9])[0-9]{8}$

21、雙位元組字元(包括漢字在內):^\x00-\xff

22、匹配首尾空格:(^\s*)|(\s*$)(像vbscript那樣的trim函式)

23、匹配HTML標記:<(.*)>.*<\/\1>|<(.*) \/> 

24、匹配空行:\n[\s| ]*\r

25、提取資訊中的網路連結:(h|H)(r|R)(e|E)(f|F) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?

26、提取資訊中的郵件地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

27、提取資訊中的圖片連結:(s|S)(r|R)(c|C) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?

28、提取資訊中的IP地址:(\d+)\.(\d+)\.(\d+)\.(\d+)

29、提取資訊中的中國手機號碼:(86)*0*13\d{9}

30、提取資訊中的中國固定電話號碼:(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}

31、提取資訊中的中國電話號碼(包括移動和固定電話):(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}

32、提取資訊中的中國郵政編碼:[1-9]{1}(\d+){5}

33、提取資訊中的浮點數(即小數):(-?\d*)\.?\d+

34、提取資訊中的任何數字 :(-?\d*)(\.\d+)? 

35、IP:(\d+)\.(\d+)\.(\d+)\.(\d+)

36、電話區號:/^0\d{2,3}$/

37、騰訊QQ號:^[1-9]*[1-9][0-9]*$

38、帳號(字母開頭,允許5-16位元組,允許字母數字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$

39、中文、英文、數字及下劃線:^[\u4e00-\u9fa5_a-zA-Z0-9]+$

40.使用者名稱3-15位中英文字母數字:^[0-9a-zA-Z\u4e00-\u9fa5]{3,15}$

輸入框常用正則表示式限制:

"onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" //複製貼上前執行

1.只能輸入數字和英文的: 
<input onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" ID="Text1" NAME="Text1">

2.
只能輸入數字的: 
<input onkeyup="value=value.replace(/[^\d]/g,'') " onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" ID="Text2" NAME="Text2">

3.
只能輸入全形的: 
<input onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))" ID="Text3" NAME="Text3">

4.
只能輸入漢字的: 
<input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))" ID="Text4" NAME="Text4">