【正規表示式】常用的正規表示式(數字,漢字,字串,金額等的正規表示式)

JS Lover發表於2021-12-13

❤ 寫在前面

如果覺得對你有幫助的話,點個小❤❤ 吧,你的支援是對我最大的鼓勵~
歡迎關注我的公眾號【有更多的前端教程】 或者來看 我的個人網站
二維碼


1.校驗數字

數字	^[0-9]*$
Z位的數字	^\d{Z}$
至少Z位的數字	^\d{Z,}$
X-Z位的數字	^\d{X,Z}$

數字(零和非零開頭)	^(0|[1-9][0-9]*)$
最多帶兩位小數的數字(非零開頭)	^([1-9][0-9]*)+(\.[0-9]{1,2})?$

帶1-2位小數的正數或負數	^(\-)?\d+(\.\d{1,2})$
正數、負數、和小數	^(\-|\+)?\d+(\.\d+)?$

有兩位小數的正實數	^[0-9]+(\.[0-9]{2})?$
有1~3位小數的正實數	^[0-9]+(\.[0-9]{1,3})?$

整數(非負)		^\d+$ 或 ^[1-9]\d*|0$
整數(非正)		^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$

正整數(非零)	^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$
負整數(非零)	^\-[1-9][]0-9"*$ 或 ^-[1-9]\d*$

正浮點數		^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ 或 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
負浮點數		^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ 或 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
浮點數		^(-?\d+)(\.\d+)?$ 或 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$

浮點數(非負)	^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$
浮點數(非正)	^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 或 ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$

2.校驗字元

漢字	^[\u4e00-\u9fa5]{0,}$
英文和數字	^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$
長度為3-20的所有字元		^.{3,20}$

英文字母		^[A-Za-z]+$
大寫英文字母		^[A-Z]+$
小寫英文字母		^[a-z]+$

數字、英文字母	^[A-Za-z0-9]+$
數字、英文字母 或 下劃線	^\w+$ 或 ^\w{3,20}$

中文、英文、數字包括下劃線	^[\u4E00-\u9FA5A-Za-z0-9_]+$
中文、英文、數字但不包括下劃線等符號	^[\u4E00-\u9FA5A-Za-z0-9]+$ 或 ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$

可以輸入含有^%&',;=?$\"等字元 	[^%&',;=?$\x22]+
禁止輸入含有~的字元		[^~\x22]+

3.特殊需求表示式

Email地址 	^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
域名	[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?
網址	[a-zA-z]+://[^\s]*^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$

手機號碼 	^(13[0-9]|14[5|7]|15[0|1|2|3|4|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$
電話號碼 	^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$
國內電話號碼(0591-2236123051-84562156) 	\d{3}-\d{8}|\d{4}-\d{7}
電話號碼正規表示式(支援手機號碼,3-4位區號,7-8位直播號碼,1-4位分機號) 	((\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$)

身份證號(15位、18位數字),最後一位是校驗位,可能為數字或字元X(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)
帳號是否合法(字母開頭,允許5-16位元組,允許字母數字下劃線)^[a-zA-Z][a-zA-Z0-9_]{4,15}$

密碼(以字母開頭,長度在6~18之間,只能包含字母、數字和下劃線)
	^[a-zA-Z]\w{5,17}$
密碼(必須包含大小寫字母和數字的組合,不能使用特殊字元,長度在 8-10 之間)
	^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,10}$
密碼(必須包含大小寫字母和數字的組合,可以使用特殊字元,長度在8-10之間)
	^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$

日期 	^\d{4}-\d{1,2}-\d{1,2}
一年的12個月(0109112) 	^(0?[1-9]|1[0-2])$
一個月的31天(0109131) 	^((0?[1-9])|((1|2)[0-9])|30|31)$

xml檔案 	^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$
中文字元的正規表示式 	[\u4e00-\u9fa5]

空白行的正規表示式 	\n\s*\r (用來刪除空白行)

HTML標記的正規表示式 	<(\S*?)[^>]*>.*?|<.*? /> 

騰訊QQ[1-9][0-9]{4,} (騰訊QQ號從10000開始)
中國郵政編碼 	[1-9]\d{5}(?!\d) (中國郵政編碼為6位數字)
IPv4地址 	((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}

4.金額的校驗

四種金額表示形式:"22222.11" , "22,222.33", "22222" , "22,222" 	^[1-9][0-9]*$
任意一個不以0開頭的數字 	^(0|[1-9][0-9]*)$

一個0或者一個不以0開頭的數字.我們還可以允許開頭有一個負號 	^(0|-?[1-9][0-9]*)$
這表示一個0或者一個可能為負的開頭不為0的數字,小數部分 	^[0-9]+(.[0-9]+)?$

必須說明的是,小數點後面至少應該有1位數,所以"10."是不通過的,但是 "10""10.2" 是通過的 	^[0-9]+(.[0-9]{2})?$
這樣我們規定小數點後面必須有兩位,如果你認為太苛刻了,可以這樣 	^[0-9]+(.[0-9]{1,2})?$

這樣就允許使用者只寫一位小數.下面我們該考慮數字中的逗號了,我們可以這樣 	^[0-9]{1,3}(,[0-9]{3})*(.[0-9]{1,2})?$
13個數字,後面跟著任意個 逗號+3個數字,逗號成為可選,而不是必須 	^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$

相關文章