url 的正则表达式: 包括 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;
- }
- }
匹配手机号
var myreg = /^(13[0-9]{1}|14[5|7|9]{1}|15[0-3|5-9]{1}|166|17[0-3|5-8]{1}|18[0-9]{1}|19[8-9]{1}){1}\d{8}$/;
用户名正则, 4 到 16 位(字母, 数字, 下划线, 减号)
- var uPattern = /^[a-zA-Z0-9_-]{
- 4,16
- }$/;
- // 输出 true
- console.log(uPattern.test("caibaojian"));
密码强度正则
- // 密码强度正则, 最少 6 位, 包括至少 1 个大写字母, 1 个小写字母, 1 个数字, 1 个特殊字符
- var pPattern = /^.*(?=.{
- 6,
- })(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/;
- // 输出 true
- console.log("=="+pPattern.test("caibaojian#"));
整数正则
- // 正整数正则
- 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"));
数字正则
- // 可以是整数也可以是浮点数
- // 正数正则
- 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"));
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));
身份证号正则
- // 身份证号 (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"));
URL 正则
- //URL 正则
- var urlP= /^((https?|ftp|file):\/\/)?([\da-z\.-]+)\.([a-z\.]{
- 2,6
- })([\/\w \.-]*)*\/?$/;
- // 输出 true
- console.log(urlP.test(http://caibaojian.com));
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"));
十六进制颜色正则
- //RGB Hex 颜色正则
- var cPattern = /^#?([a-fA-F0-9]{
- 6
- }|[a-fA-F0-9]{
- 3
- })$/;
- // 输出 true
- console.log(cPattern.test("#b8b8b8"));
日期正则
- // 日期正则, 简单判定, 未做月份及日期的判定
- 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"));
QQ 号码正则
- //QQ 号正则, 5 至 11 位
- var qqPattern = /^[1-9][0-9]{
- 4,10
- }$/;
- // 输出 true
- console.log(qqPattern.test("65974040"));
微信号正则
- // 微信号正则, 6 至 20 位, 以字母开头, 字母, 数字, 减号, 下划线
- var wxPattern = /^[a-zA-Z]([-_a-zA-Z0-9]{
- 5,19
- })+$/;
- // 输出 true
- console.log(wxPattern.test("caibaojian_com"));
车牌号正则
- // 车牌号正则
- var cPattern = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领 A-Z]{
- 1
- }[A-Z]{
- 1
- }[A-Z0-9]{
- 4
- }[A-Z0-9 挂学警港澳]{
- 1
- }$/;
- // 输出 true
- console.log(cPattern.test("粤 B39006"));
包含中文正则
- // 包含中文正则
- 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".
总结
来源: https://www.jb51.net/article/151713.htm