学习正则(三)——工作中使用记录

1.js获取当前域名、Url的指定参数

function GetQueryString(name, search) {
    
    
    var reg = new RegExp("(^|&|\\?)" + name + "=([^&]*)(&|$)");
    var r = (search||window.location.search.substr(1)).match(reg);
    if (r != null) return decodeURI(r[2]);
    return null;
};

解析:(^|&|\?) :以空字符或&字符号或?开始匹配,因为在正则中问号表示量词匹配零次或1次,所以要用转义字符 \ 转义。在Java中用双反斜杠表示转义。
([^&]*) : 匹配任意数量的 除了 & 以外的字符 (也就是说name=后面的值一旦有&则就不向后取值了)。
(&|$)"):匹配任何以 & 结尾 或者 以空白结尾的参数 (也就是说匹配了该参数在中间或者最后一个参数的情况)

2.用户名正则

//用户名正则,4-16位(字母、数字、下划线、减号)
var uPattern = /^[a-zA-Z0-9_-]{4,16}$/;
//输出:true
console.log(uPattern.test("caibaojian"));

3.密码强度校验

//密码强度正则,最少6位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符
var pPattern = /^.*(?=.{6,})(?=.*\d)(?=.*[A-Z])(?=.*[!@#$%^&*? ]).&/;
//输出 true
console.log("==" + pPattern.test("vaibaojian#"));

4.整数正则

//正整数正则
var psoPattern= /^\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"));

5.数字正则

可以是浮点数也可是整数

//正数
var posPattern = /^\d*\.?\d+$/;
//负数正则
var negPattern = /^-\d*\.?\d+$/;
//数字正则
var numPattern = /^-?\d*\.?\d+$/;

6.Email正则

var ePattern = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
//输出 true
console.log(ePattern.test("[email protected]"));

7.手机号码正则

var mPattren = /^1[34578]\d{9}$/;
//输出 true
console.log(mPattern.test("15507621888"));

8.身份号正则

//身份证号码(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]$/;

9.URL正则

var urlP=/^((https?|ftp|file):\/\/)?([\da-z\.-]+)\.([a-z\.{2,6}])([\/\w \.-]*)*\/?&/;
//输出 true
console.log(urlP.test("http://caibaojian.com"));

10.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"));

11.十六进制颜色正则

//RGB Hex颜色正则
var cPattern = /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/;
//输出 true
console.log(cPattern.test("#b8b8b8"));

12.日期正则

//日期正则,简单判定,未做月份及日期的判定
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"));

13.QQ号码正则

//QQ号正则,5至11位
var qqPattern = /^[1-9][0-9]{4,10}$/;
//输出 true
console.log(qqPattern.test("65974040"));

14.微信号正则

//微信号正则,6至20位,以字母开头,字母,数字,减号,下划线
var wxPattern = /^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$/;
//输出 true
console.log(wxPattern.test("caibaojian_com"));

15.车牌号正则

//车牌号正则
var cPattern = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/;
//输出 true
console.log(cPattern.test("浙AKP053"));

16.包含中文正则

//包含中文正则
var cnPattern = /[\u4E00-\u9FA5]/;
//输出 true
console.log(cnPattern.test("愚人码头"));

原文链接:https://blog.csdn.net/chenjuan1993/article/details/81869117

猜你喜欢

转载自blog.csdn.net/literarygirl/article/details/114671741
今日推荐