1、手机号码(带区号手机号: /^((0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$/ )
export function validatePhone(rule, value,callback) {
const reg =/^[1][3|4|5|7|8|9][0-9]{9}$/;
if(value==''||value==undefined||value==null){
callback();
}else {
if ((!reg.test(value)) && value != '') {
callback(new Error('请输入正确的电话号码'));
} else {
callback();
}
}
}
2、密码校验
export const validatePsdReg = (rule, value, callback) => { if (!value) { return callback(new Error('请输入密码')) } if (!/^(?![\d]+$)(?![a-zA-Z]+$)(?![^\da-zA-Z]+$)([^\u4e00-\u9fa5\s]){6,20}$/.test(value)) { callback(new Error('请输入6-20位英文字母、数字或者符号(除空格),且字母、数字和标点符号至少包含两种')) } else { callback() } }
//密码强度正则,最少6位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符/^.*(?=.{6,})(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@
#$%^&*? ]).*$/
3、邮箱
export function validateEMail(rule, value,callback) { const reg =/^([a-zA-Z0-9]+[-_\.]?)+@[a-zA-Z0-9]+\.[a-z]+$/; if(value==''||value==undefined||value==null){ callback(); }else{ if (!reg.test(value)){ callback(new Error('请输入正确的邮箱')); } else { callback(); } } }
4、固话
export function validateTelphone(rule, value,callback) { const reg =/^(\(\d{3,4}\)|\d{3,4}-|s)?|\d{7,14}$/; if(value==''||value==undefined||value==null){ callback(); }else { if ((!reg.test(value)) && value != '') { callback(new Error('请输入正确的固定电话)')); } else { callback(); } } }
5、身份证号码
export function validateIdNo(rule, value,callback) { const reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/; if(value==''||value==undefined||value==null){ callback(); }else { if ((!reg.test(value)) && value != '') { callback(new Error('请输入正确的身份证号码')); } else { callback(); } } }
6、合法url
export function validateURL(url) { const urlregex = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/; return urlregex.test(url); }
7、合法ip
export function validateIP(rule, value,callback) { if(value==''||value==undefined||value==null){ callback(); }else { const 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])$/; if ((!reg.test(value)) && value != '') { callback(new Error('请输入正确的IP地址')); } else { callback(); } } }
8、验证内容是否包含英文数字以及下划线
export function isPassword(rule, value, callback) { const reg =/^[_a-zA-Z0-9]+$/; if(value==''||value==undefined||value==null){ callback(); } else { if (!reg.test(value)){ callback(new Error('仅由英文字母,数字以及下划线组成')); } else { callback(); } } }
9、 微信号
//微信号正则,6至20位,以字母开头,字母,数字,减号,下划线 var wxPattern = /^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$/;
10、车牌号
//车牌号正则 var cPattern = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/;
11、qq号
//QQ号正则,5至11位 var qqPattern = /^[1-9][0-9]{4,10}$/;
12、中国邮政编码
[1-9]d{5}(?!d) //(中国邮政编码为6位数字)
13、验证是否整数,非必填
export function isIntegerNotMust(rule, value, callback) { if (!value) { callback(); } setTimeout(() => { if (!Number(value)) { callback(new Error('请输入正整数')); } else { const re = /^[0-9]*[1-9][0-9]*$/; const rsCheck = re.test(value); if (!rsCheck) { callback(new Error('请输入正整数')); } else { callback(); } } }, 1000); }
14、HTML标记
//对于复杂的嵌套标记无能为力,下面这个仅能区分部分 <(\S*?)[^>]*>.*?</\1>|<.*? />
15、 首尾空白字符
//可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等) ^\s*|\s*$或(^\s*)|(\s*$)
16、双字节字符
//(包括汉字在内,可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)) [^\x00-\xff]
17、验证端口是否在[0,65535]之间,非必填,isMust表示是否必填
export function isCheckPort(rule, value, callback) { if (!value) { callback(); } setTimeout(() => { if (value == '' || typeof(value) == undefined) { //callback(new Error('请输入端口值')); } else { const re = /^([0-9]|[1-9]\d|[1-9]\d{2}|[1-9]\d{3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])$/; const rsCheck = re.test(value); if (!rsCheck) { callback(new Error('请输入在[0-65535]之间的端口值')); } else { callback(); } } }, 100); }
18、两位小数验证
export function validateValidity = (rule, value, callback) => { if (!/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/.test(value)) { callback(new Error('最多两位小数!!!')); } else { callback(); } };
19、十六进制颜色正则
//RGB Hex颜色正则 eg:#b8b8b8
/^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/
20、中文校验
export const validateContacts = (rule, value, callback) => { if (!value) { return callback(new Error('请输入中文')) } if (!/^[\u0391-\uFFE5A-Za-z]+$/.test(value)) { callback(new Error('不可输入特殊字符')) } else { callback() } }
21、 账号校验
export const validateCode = (rule, value, callback) => { if (!value) { return callback(new Error('请输入账号')) } if (!/^(?![0-9]*$)(?![a-zA-Z]*$)[a-zA-Z0-9]{6,20}$/.test(value)) { callback(new Error('账号必须为6-20位字母和数字组合')) } else { callback() } }
22、最多一位小数
const onePoint = (rule, value, callback) => { if (!/^[0-9]+([.]{1}[0-9]{1})?$/.test(value)) { callback(new Error('最多一位小数!!!')); } else { callback(); } };
23、 特殊字符
export function checkSpecificKey(str) { const specialKey = "[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!#¥……&*()——|{}【】‘;:”“'。,、?]‘'-" for (let i = 0; i < str.length; i++) { if (specialKey.indexOf(str.substr(i, 1)) !== -1) { return false } } return true }