匹配URL
這個url的正則表達式判斷的JavaScript!比較全面的。它驗證的情況包括IP,域名(domain),ftp,二級域名,域名中的文件,域名加上端口!用戶名等等信息,
function IsURL(str_url) { var strRegex = "^((https|http|ftp|rtsp|mms)?://)" + "?(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?" + //ftp的user@ "(([0-9]{1,3}.){3}[0-9]{1,3}" + // IP形式的URL- 199.194.52.184 "|" + // 允許IP和DOMAIN(域名) "([0-9a-z_!~*'()-]+.)*" + // 域名- www. "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]." + // 二級域名 "[a-z]{2,6})" + // first level domain- .com or .museum "(:[0-9]{1,4})?" + // 端口- :80 "((/?)|" + // a slash isn't required if there is no file name "(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$"; var re = new RegExp(strRegex); //re.test() if (re.test(str_url)) { return true; } else { return false; } }
👆的過於嚴格,看👇的
function CheckUrl(str) { var RegUrl = new RegExp(); RegUrl.compile("^[A-Za-z]+://[A-Za-z0-9-_]+\\.[A-Za-z0-9-_%&\?\/.=]+$"); //jihua.cnblogs.com if (!RegUrl.test(str)) { return false; } return true; }
還有一個🌰
function checkUrl(urlString) { if (urlString != "") { var reg = /(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/; if (!reg.test(urlString)) { alert("不是正確的網址吧,請注意檢查一下"); } } }
匹配手機號
var myreg=/^[1][3,4,5,6,7,8,9][0-9]{9}$/;
1--以1為開頭;
2--第二位可為3,4,5,6,7,8,9中的任意一位;
3--最后以0-9的9個整數結尾。
//也是一樣的效果 /^1(3|4|5|6|7|8|9)\d{9}$/
舉一個🌰:
function isPoneAvailable(str) { var myreg=/^[1][3,4,5,7,8][0-9]{9}$/; if (!myreg.test(str)) { return false; } else { return true; } } console.log(isPoneAvailable('15112345678));//=>true console.log(isPoneAvailable('12112345678));//=>false
最常用的15個前端表單驗證JS正則表達式
在表單驗證中,使用正則表達式來驗證正確與否是一個很頻繁的操作,本文收集整理了15個常用的JavaScript正則表達式,其中包括用戶名、密碼強度、整數、數字、電子郵件地址(Email)、手機號碼、身份證號、URL地址、 IPv4地址、 十六進制顏色、 日期、 QQ號碼、 微信號、車牌號、中文正則。
1、 用戶名正則
//用戶名正則,4到16位(字母,數字,下划線,減號) var uPattern = /^[a-zA-Z0-9_-]{4,16}$/; //輸出 true console.log(uPattern.test("caibaojian"));
2 、密碼強度正則
//密碼強度正則,最少6位,包括至少1個大寫字母,1個小寫字母,1個數字,1個特殊字符 var pPattern = /^.*(?=.{6,})(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/; //輸出 true console.log("=="+pPattern.test("caibaojian#"));
3、 整數正則
//正整數正則 var posPattern = /^\d+$/; //負整數正則 var negPattern = /^-\d+$/; //整數正則 var intPattern = /^-?\d+$/; //輸出 true console.log(posPattern.test("42")); //輸出 true console.log(negPattern.test("-42")); //輸出 true console.log(intPattern.test("-42"));
4、 數字正則
可以是整數也可以是浮點數
//正數正則 var posPattern = /^\d*\.?\d+$/; //負數正則 var negPattern = /^-\d*\.?\d+$/; //數字正則 var numPattern = /^-?\d*\.?\d+$/; console.log(posPattern.test("42.2")); console.log(negPattern.test("-42.2")); console.log(numPattern.test("-42.2"));
5、 Email正則
//Email正則 var ePattern = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/; //輸出 true console.log(ePattern.test(99154507@qq.com));
6、 手機號碼正則
//手機號正則 var mPattern = /^1[34578]\d{9}$/; //http://caibaojian.com/regexp-example.html //輸出 true console.log(mPattern.test("15507621888"));
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]$/; //輸出 true console.log(cP.test("11010519880605371X"));
8、 URL正則
//URL正則 var urlP= /^((https?|ftp|file):\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/; //輸出 true console.log(urlP.test(http://caibaojian.com));
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]?)$/; //輸出 true console.log(ipP.test("115.28.47.26"));
10 、十六進制顏色正則
//RGB Hex顏色正則 var cPattern = /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/; //輸出 true console.log(cPattern.test("#b8b8b8"));
11、 日期正則
//日期正則,簡單判定,未做月份及日期的判定 var dP1 = /^\d{4}(\-)\d{1,2}\1\d{1,2}$/; //輸出 true console.log(dP1.test("2017-05-11")); //輸出 true console.log(dP1.test("2017-15-11")); //日期正則,復雜判定 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)$/; //輸出 true console.log(dP2.test("2017-02-11")); //輸出 false console.log(dP2.test("2017-15-11")); //輸出 false console.log(dP2.test("2017-02-29"));
12、 QQ號碼正則
//QQ號正則,5至11位 var qqPattern = /^[1-9][0-9]{4,10}$/; //輸出 true console.log(qqPattern.test("65974040"));
13、 微信號正則
//微信號正則,6至20位,以字母開頭,字母,數字,減號,下划線 var wxPattern = /^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$/; //輸出 true console.log(wxPattern.test("caibaojian_com"));
14 、車牌號正則
//車牌號正則 var cPattern = /^[京津滬渝冀豫雲遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陝吉閩貴粵青藏川寧瓊使領A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9掛學警港澳]{1}$/; //輸出 true console.log(cPattern.test("粵B39006"));
15、 包含中文正則
//包含中文正則 var cnPattern = /[\u4E00-\u9FA5]/; //輸出 true console.log(cnPattern.test("董董董")); 整數或者小數:^[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"。整數或者小數:^[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"。
16、20190105日期字符串轉成XXXX-XX-XX
'20190105'.replace(/^(\d{4})(\d{2})(\d{2})$/, "$1-$2-$3") //2019-01-05
本文摘錄自https://mp.weixin.qq.com/s/JruxINKKYAlzcsTM6c5eyA