在表單驗證中,正則表達式書寫起來特別繁瑣,本文整理了15個常用的JavaScript正則表達式,其中包括用戶名、密碼強度、整數、數字、電子郵件地址(Email)、手機號碼、身份證號、URL地址、 IPv4地址、 十六進位顏色、 日期、 QQ號碼、 微信號、車牌號、中文正則、文件路徑及擴展名、提取網頁 ...
在表單驗證中,正則表達式書寫起來特別繁瑣,本文整理了15個常用的JavaScript正則表達式,其中包括用戶名、密碼強度、整數、數字、電子郵件地址(Email)、手機號碼、身份證號、URL地址、 IPv4地址、 十六進位顏色、 日期、 QQ號碼、 微信號、車牌號、中文正則、文件路徑及擴展名、提取網頁中顏色代碼、提取網頁中圖片、提取網頁超聯機、提取css、抽取註釋、
1.用戶名
//用戶名正則,4到16位(字母,數字,下劃線,減號) var userName = /^[a-zA-Z0-9_-]{4,16}$/; //優化後: //userName = /^[\w-]{4,16}$/;
2.密碼強度
//密碼強度正則,最少6位,包括至少1個大寫字母,1個小寫字母,1個數字,1個特殊字元 var pPattern = /^.*(?=.{6,})(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/;
//密碼的強度必須是包含大小寫字母和數字的組合,不能使用特殊字元,長度在8-10之間 var reg = /^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$/;
3.整數
//正整數正則 var posPattern = /^\d+$/; //負整數正則 var negPattern = /^-\d+$/; //整數正則 var intPattern = /^-?\d+$/;
4.數字(可以整數也可以浮點數)
1 數字: ^[0-9]$ 2 n位的數字: ^\d{n}$ 3 至少n位的數字: ^\d{n,}$ 4 m-n位的數字:^\d{m,n}$ 5 零和非零開頭的數字:^(0|[1-9][0-9]*)$ 6 非零開頭的最多帶兩位小數的數字:^([1-9][0-9]*)+(.[0-9]{1,2})?$ 7 帶1-2位小數的正數或負數:^(\-)?\d+(\.\d{1,2})?$ 8 正數、負數、和小數:^(\-|\+)?\d+(\.\d+)?$ 9 有兩位小數的正實數:^[0-9]+(.[0-9]{2})?$ 10 有1~3位小數的正實數:^[0-9]+(.[0-9]{1,3})?$ 11 非零的正整數:^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$ 12 非零的負整數:^\-[1-9][]0-9"*$ 或 ^-[1-9]\d*$ 13 非負整數:^\d+$ 或 ^[1-9]\d*|0$ 14 非正整數:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$ 15 非負浮點數:^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$ 16 非正浮點數:^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 或 ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$ 17 正浮點數:^[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]*))$ 18 負浮點數:^-([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]*)))$ 19 浮點數:^(-?\d+)(\.\d+)?$ 或 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$
5.Email
//Email正則 var ePattern = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/; //優化後: var ePattern =/^([\w\-\.])+\@([\w\-\.])+\.([A-Za-z]{2,4})$/;
//else var reg =/[\\w!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\\w](?:[\\w-]*[\\w])?\\.)+[\\w](?:[\\w-]*[\\w])?/;
6.手機號碼
//手機號正則 var mPattern = /^1[34578]\d{9}$/;
7.身份證號
//身份證號(18位)正則 var cP = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
//15位: var reg = /^[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$/
8.URL
//URL正則 var urlP= /^((https?|ftp|file):\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/;
9.IPV4地址
//ipv4地址正則 var ipP = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
10.十六進位顏色
//RGB Hex顏色正則 var cPattern = /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/;
11.日期
//日期正則,簡單判定,未做月份及日期的判定 var dP1 = /^\d{4}(\-)\d{1,2}\1\d{1,2}$/; //日期正則,複雜判定 var dP2 = /^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$/;
var reg2 = /^(^(\d{4}|\d{2})(\-|\/|\.)\d{1,2}\3\d{1,2}$)|(^\d{4}年\d{1,2}月\d{1,2}日$)$/;
12.QQ號碼
//QQ號正則,5至11位 var qqPattern = /^[1-9][0-9]{4,10}$/;
13.微信號
//微信號正則,6至20位,以字母開頭,字母,數字,減號,下劃線 var wxPattern = /^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$/;
14.車牌號
//車牌號正則 var cPattern = /^[京津滬渝冀豫雲遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陝吉閩貴粵青藏川寧瓊使領A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9掛學警港澳]{1}$/;
15.包含中文
//包含中文正則 var cnPattern = /[\u4E00-\u9FA5]/;var
reg = /^[\\u4e00-\\u9fa5]{0,}$/;
16.文件路徑及擴展名
//驗證 windows下文件路徑和擴展名(下麵的例子中為.txt文件) var reg = /^([a-zA-Z]\\:|\\\\)\\\\([^\\]+\\)*[^\\/:*?"<>|]+\\.txt(l)?$/;
17.提取Color Hex Codes
//有時需要抽取網頁中的顏色代碼,可以使用下麵的表達式。 var reg = /^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/;
18.提取網頁中的圖片
//提取網頁圖片假若你想提取網頁中所有圖片信息,可以利用下麵的表達式。 var reg = /\\< *[img][^\\>]*[src] *= *[\\"\']{0,1}([^\\"\'\ >]*)/;
19.提取頁面超鏈接
var reg = /(<a\\s*(?!.*\\brel=)[^>]*)(href="https?:\/\/)((?!(?:(?:www\\.)?'.implode('|(?:www\\.)?', $follow_list).'))[^" rel="external nofollow" ]+)"((?!.*\\brel=)[^>]*)(?:[^>]*)>/;
20.查找CSS屬性
//下麵的表達式,可以搜索到相匹配的CSS屬性。 var reg = /^\\s*[a-zA-Z\\-]+\\s*[:]{1}\\s[a-zA-Z0-9\\s.#]+[;]{1}/;
21.抽取註釋
//如果你需要移除HMTL中的註釋,可以使用如下的表達式。 var reg = /<!--(.*?)-->/;