正则表达式应用
一.IP单个、多个正则匹配
1.匹配单个ip
reg = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/
示例
reg.test("192.1") // false
reg.test("192.1.1.1") // true
reg.test("192.1.1.1,192.1.1.1") // false
2.匹配多个ip,以逗号分隔
方法一:
reg = /^(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)){3}(?:\/(?:3[0-2]|[1-2]?\d|))?(?:,(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)){3}(?:\/(?:3[0-2]|[1-2]?\d|))?)*$/
方法二:
function checkIpv6(ip) {
let reg = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;
let valdata = ip.split(',');
let boolData = true
for(i=0;i<valdata.length;i++){
if(reg.test(valdata[i])== false){
boolData = false;
}
}
return boolData;
};
示例
reg.test("192.1.1.1") // true
reg.test("192.1.1") // false
reg.test("192.1.1.1,192.1.1.1") // true
reg.test("192.1.1.1,192.1.1.2.1") // false
3.匹配单个ip+端口号
reg = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\:([0-9]|[1-9]\d{1,3}|[1-5]\d{4}|6[0-5]{2}[0-3][0-5])$/
reg.test("192.1.1") // false
reg.test("192.1.1.1") // false
reg.test("192.1.1.1:8080") //true
reg.test("192.1.1.1:8080,192.3.3.3") // false
reg.test("192.1.1.1:8080,192.3.3.3:8080") // false
二、校验类方法
//URL地址
function URL(val) {
var reg = /^http[s]?:\/\/.*/;
return reg.test(val);
}
//手机号码
var reg = /^1[3|4|5|6|7|8|9][0-9]{9}$/;
//座机(带短线)
var reg = /^(0\d{2,3}-\d{7,8})(-\d{1,4})?$/;
//身份证
// let reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
// let reg = /(^[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]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}$)/;
// 只校验18的身份证
var reg = /(^[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]$)/;
//密码以字母开头,长度在6~18之间,只能包含字母、数字和下划线
var reg = /^[a-zA-Z]\w{5,17}$/;
//邮政编码
var reg = /[1-9]\d{5}(?!\d)/;
//QQ号
var reg = /^[1-9][0-9]{4,9}$/;
//邮箱
var reg = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;
//金额(小数点2位)
// let reg = /^\d*(?:\.\d{0,2})?$/;
var reg = /^(([1-9][0-9]*)|(([0]\.\d{1,2}|[1-9][0-9]*\.\d{1,2})))$/;
//网址
var reg = /(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/;
//IP
// let reg = /((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d))/;
var reg = /^((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.){3}(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])$/;
//日期时间
var reg = /^(\d{4})\-(\d{2})\-(\d{2}) (\d{2})(?:\:\d{2}|:(\d{2}):(\d{2}))$/.test(val) || /^(\d{4})\-(\d{2})\-(\d{2})$/;
//数字
// let reg = /^[0-9]$/;
var reg = /^([0-9])*$/g;
//英文
var reg = /^[a-zA-Z]+$/g;
//中文
var reg = /^[\u4E00-\u9FA5]+$/g;
//中文
var reg = /[\u4E00-\u9FA5]+/g;
//小写
var reg = /^[a-z]+$/g;
//小写英文+反斜杠 / 校验
var reg = /^[a-z\/]+$/g;
//英文+反斜杠 / 校验
var reg = /^[a-zA-Z\/-]+$/g;
//常用特殊字符校验(可输入常用标点符号)
var reg = new RegExp("[`~%@#$^&*()=|{}\\[\\].<>/?~@#¥……&*()——|{}【】]");
//特殊字符校验
var reg = new RegExp("[`~!%@#$^&*()=|{}':;',\\[\\].<>《》/?~!@#¥……&*()——|{}【】‘;:”“'。,、?]");
//特殊字符校验(可输入英文点号)
var reg = new RegExp("[`~!%@#$^&*()=|{}':;',\\[\\]<>《》/?~!@#¥……&*()——|{}【】‘;:”“'。,、?]");
//特殊字符校验允许输入冒号
var reg = new RegExp("[`~!%@#$^&*()=|{}';',\\[\\].<>《》/?~!@#¥……&*()——|{}【】‘;:”“'。,、?]");
//特殊字符校验允许输入冒号大括号
var reg = new RegExp("[`~!%@#$^&*()=|';',\\[\\].<>《》/?~!@#¥……&*()——|【】‘;:”“'。,、?]");
//特殊字符校验允许输入圆括号
var reg = new RegExp("[`~!%@#$^&*=|{}':;',\\[\\].<>《》/?~!@#¥……&*——|{}【】‘;:”“'。,、?]");
//大写
var reg = /^[A-Z]+$/g;
//HTML标记
var reg = /<("[^"]*"|'[^']*'|[^'">])*>/;
// 银行卡规则 (8 - 30位 都有)
// let reg = /^([1-9]{1})(\d{14}|\d{15}|\d{16}|\d{18})$/;
// let reg = /^([1-9]{1})(\d{7,29})$/;
var reg = /^(\d{8,30})$/;
// 银行卡规则 可输入中划线(8 - 30位 都有)
var reg = /^\d{1}[0-9-]{6,28}\d{1}$/;
//经度
var longrg = /^(\-|\+)?(((\d|[1-9]\d|1[0-7]\d|0{1,3})\.\d{0,6})|(\d|[1-9]\d|1[0-7]\d|0{1,3})|180\.0{0,6}|180)$/;
//纬度
var latreg = /^(\-|\+)?([0-8]?\d{1}\.\d{0,6}|90\.0{0,6}|[0-8]?\d{1}|90)$/;
//数字+英文字母+反斜杠
var reg = /^[0-9a-zA-Z\/]+$/g;
// 判断是否为小数
var reg = /^(\-?)\d+$/;
// 判断是否为2位小数
var reg = /(^([+-]?)[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^([+-]?)(0){1}$)|(^([+-]?)[0-9]\.[0-9]([0-9])?$)/;
// 判断是否为正整数、负数、小数
var reg = /^(\-|\+)?\d+(\.\d+)?$/;
//数字和字母
var reg = /^([A-Za-z0-9])*$/;
// 判断是否含有表情符号
var reg = new RegExp("[^\\u0020-\\u007E\\u00A0-\\u00BE\\u2E80-\\uA4CF\\uF900-\\uFAFF\\uFE30-\\uFE4F\\uFF00-\\uFFEF\\u0080-\\u009F\\u2000-\\u201f\r\n]");
//编码类型校验
var reg = /^([A-Za-z0-9\-_])*$/;
// 只能输入数字和一位小数点
var reg = /^[0-9]+([.]{1}[0-9]+){0,1}$/;
//车牌号校验
var reg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/;
// 传真号码校验
var reg = /^(?:\d{3,4}-)?\d{7,8}(?:-\d{1,6})?$/;
//空格校验
var reg = /\s/;
// 特殊字符校验
var reg = new RegExp("[`%@#$^&*()=|{}''\\[\\]<>《》/@#¥&*——|{}【】]");
//正整数
var reg =/(^[1-9]\d*$)/