JS常⽤各种正则表达式(汇总)
匹配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- 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();
RegUrlpile("^[A-Za-z]+://[A-Za-z0-9-_]+\\.[A-Za-z0-9-_%&\?\/.=]+$"); //jihuablogs
if (!st(str)) {
return false;
}
return true;
}
还有⼀个
function checkUrl(urlString) {
if (urlString != "") {
var reg = /(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/;
if (!st(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 (!st(str)) {
return false;
} else {
return true;
}
}
console.log(isPoneAvailable('151********));//=>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.st("caibaojian"));
2 、密码强度正则
//密码强度正则,最少6位,包括⾄少1个⼤写字母,1个⼩写字母,1个数字,1个特殊字符
var pPattern = /^.*(?=.{6,})(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/;
//输出 true
console.log("=="+st("caibaojian#"));
3、整数正则
//正整数正则
var posPattern = /^\d+$/;
//负整数正则
var negPattern = /^-\d+$/;
//整数正则
var intPattern = /^-?\d+$/;
//输出 true
console.st("42"));
//输出 true
console.st("-42"));
//输出 true
console.st("-42"));
4、数字正则
可以是整数也可以是浮点数
/
/正数正则
var posPattern = /^\d*\.?\d+$/;
//负数正则
var negPattern = /^-\d*\.?\d+$/;
//数字正则
var numPattern = /^-?\d*\.?\d+$/;
console.st("42.2"));
console.st("-42.2"));js中文正则表达式
console.st("-42.2"));
5、 Email正则
//Email正则
var ePattern = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
//输出 true
console.st(99154507@qq));
6、⼿机号码正则
//⼿机号正则
var mPattern = /^1[34578]\d{9}$/; //caibaojian/regexp-example.html
//输出 true
console.st("155********"));
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.st("110105************"));
8、 URL正则
//URL正则
var urlP= /^((https?|ftp|file):\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/;
//输出 true
console.st(caibaojian));
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.st("115.28.47.26"));
10 、⼗六进制颜⾊正则
//RGB Hex颜⾊正则
var cPattern = /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/;
//输出 true
console.st("#b8b8b8"));
11、⽇期正则
//⽇期正则,简单判定,未做⽉份及⽇期的判定
var dP1 = /^\d{4}(\-)\d{1,2}\1\d{1,2}$/;
//输出 true
console.st("2017-05-11"));
/
/输出 true
console.st("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.st("2017-02-11"));
//输出 false
console.st("2017-15-11"));
//输出 false
console.st("2017-02-29"));
12、 QQ号码正则
//QQ号正则,5⾄11位
var qqPattern = /^[1-9][0-9]{4,10}$/;
//输出 true
console.st("65974040"));
13、号正则
//号正则,6⾄20位,以字母开头,字母,数字,减号,下划线
var wxPattern = /^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$/;
//输出 true
console.st("caibaojian_com"));
14 、车牌号正则
//车牌号正则
var cPattern = /^[京津沪渝冀豫云辽⿊湘皖鲁新苏浙赣鄂桂⽢晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/;
//输出 true
console.st("粤B39006"));
15、包含中⽂正则
//包含中⽂正则
var cnPattern = /[\u4E00-\u9FA5]/;
//输出 true
console.st("董董董"));
整数或者⼩数:^[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:"^([\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:"^([\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
本⽂摘录⾃mp.weixin.qq/s/JruxINKKYAlzcsTM6c5eyA
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论