1. 常见校验正则判断:
/**
* @description 身份证正则
* @param str
* @returns {boolean}
*/
export function isIDCardReg(str: string) {
const reg = /^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
return reg.test(str)
}
/**
* @description 判断是否为固话
* @param str
* @returns {boolean}
*/
export function isTel(str: string) {
const reg = /^(400|800)([0-9\\-]{7,10})|(([0-9]{4}|[0-9]{3})(-| )?)?([0-9]{7,8})((-| |转)*([0-9]{1,4}))?$/;
return reg.test(str);
}
/**
* @description 判断是否是国内手机号
* @param str
* @returns {boolean}
*/
export function isPhone(str: string) {
const reg = /^1[3456789]\d{9}$/
return reg.test(str)
}
/**
* @description 判断是否符合国际手机号格式
* @param code 区号
* @param str 手机号
* @returns {boolean}
*/
export function isLoginPhone(code: string | number, str: string) {
const reg = /^1[3456789]\d{9}$/
const allReg = /^[1-9]\d{0,3}-\d{7,11}$/
return code == '86' ? reg.test(str) : allReg.test(`${code}-${str}`)
}
/**
* @description 判断是否是身份证号(第二代)
* @param str
* @returns {boolean}
*/
export function isIdCard(str: string) {
const 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]$/;
return reg.test(str);
}
/**
* @description 判断是否是邮箱
* @param str
* @returns {boolean}
*/
export function isEmail(str: string) {
const reg = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
return reg.test(str);
}
/**
* @description 判断是否中文
* @param str
* @returns {boolean}
*/
export function isChina(str: string) {
const reg = /^[\u4E00-\u9FA5]{2,4}$/;
return reg.test(str);
}
/**
* @description 判读是否为外链
* @param path
* @returns {boolean}
*/
export function isExternal(path: string) {
return /^(https?:|mailto:|tel:)/.test(path);
}
/**
* @description 判读是否为链接
* @param path
* @returns {boolean}
*/
export function isUrl(path: string) {
return /http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- ./?%&=]*)?/.test(path);
}
/**
* @description 校验密码是否小于6位
* @param str
* @returns {boolean}
*/
export function isPassword(str: string) {
return /^[0-9a-zA-Z]{6,16}$/.test(str);
}
/**
* @description 校验QQ
* @param str
* @returns {boolean}
*/
export function isQQ(str: string) {
return /^[1-9][0-9]{4,10}$/.test(str);
}
/**
* @description 校验WX
* @param str
* @returns {boolean}
*/
export function isWx(str: string) {
return /^[-_a-zA-Z0-9]{5,19}$/.test(str);
}
/**
* @description 校验银行卡
* @param str
* @returns {boolean}
*/
export function isBank(str: string) {
return /^[1-9]\d{9,29}$/.test(str);
}
/**
* @description 校验支付宝
* @param str
* @returns {boolean}
*/
export function isZFB(str: string) {
return /^(?:1[3-9]\d{9}|[a-zA-Z\d._-]*\@[a-zA-Z\d.-]{1,10}\.[a-zA-Z\d]{1,20})$/.test(str);
}
/**
* @description 是否是链接
* @param str
* @returns {boolean}
*/
export function isUrl(path: string): boolean {
const reg
= /(((^https?:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(?::\d+)?|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)$/
return reg.test(path)
}
2. 常见element输入框格式校验:
// 1.限制input输入框只能输入大小写字母、数字、下划线的正则表达式:
<el-input type="text" onkeyup="this.value=this.value.replace(/[^\w_]/g,'');">
// 2.限制input输入框只能输入小写字母、数字、下划线的正则表达式:
<el-input type="text" onkeyup="this.value=this.value.replace(/[^a-z0-9_]/g,'');">
// 3.限制input输入框只能输入数字和点的正则表达式:
<el-input type="text" onkeyup="value=value.replace(/[^\d.]/g,'')">
// 4.限制input输入框只能输入中文的正则表达式:
<el-input type="text" onkeyup="this.value=this.value.replace(/[^\u4e00-\u9fa5]/g,'')">
// 5.限制input输入框只能输入数字的正则表达式:
<el-input type="text" onkeyup="this.value=this.value.replace(/\D/g,'')">
// 6.限制input输入框只能输入英文的正则表达式:
<el-input type="text" onkeyup="this.value=this.value.replace(/[^a-zA-Z]/g,'')">
// 7.限制input输入框只能输入中文、数字、英文的正则表达式:
<el-input onkeyup="value=value.replace(/[^\w\u4E00-\u9FA5]/g, '')">
// 8.限制input输入框只能输入数字和字母的正则表达式:
<el-inputt onKeyUp="value=value.replace(/[\W]/g,'')">
// 9.限制input输入框除了英文的标点符号以外,其他的都可以中文,英文字母,数字,中文标点的正则表达式:
<el-input type="text" onkeyup="this.value=this.value.replace(/^[^!@#$%^&*()-=+]/g,'')">
// 10.限制input输入框只能输入数字代码(小数点也不能输入)的正则表达式:
<el-input onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')">
// 11.限制input输入框只能输入数字,能输小数点.的正则表达式:
<el-input onkeyup="if(isNaN(value))execCommand('undo')" onafterpaste="if(isNaN(value))execCommand('undo')">
<el-input name=txt1 onchange="if(/\D/.test(this.value)){alert('只能输入数字');this.value='';}">
// 12.限制input输入框只能输入字母和汉字的正则表达式:
<el-input onkeyup="value=value.replace(/[\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[\d]/g,''))" maxlength=10 name="Numbers">
// 13.限制input输入框只能输入英文字母和数字,不能输入中文的正则表达式:
<el-input onkeyup="value=value.replace(/[^\w\.\/]/ig,'')">
// 14.限制input输入框只能输入数字和英文的正则表达式:
<el-input onKeyUp="value=value.replace(/[^\d|chun]/g,'')">
// 15.限制input输入框小数点后只能有最多两位(数字,中文都可输入),不能输入字母和运算符号的正则表达式:
<el-input onKeyPress="if((event.keyCode<48 || event.keyCode>57) && event.keyCode!=46 || /\.\d\d$/.test(value))event.returnValue=false">
// 16.限制input输入框小数点后只能有最多两位(数字,字母,中文都可输入),可以输入运算符号:的正则表达式:
<el-input onkeyup="this.value=this.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')">
// 17.不可输入中文
<el-input onkeyup="this.value=this.value.replace(/[\u4E00-\u9FA5]/g,'')">
// 18.不可输入空格
<el-input onkeyup="onkeyup="value = value.replace(/\s+/g, '')">
// 19.只能是数字+小数点且只能保留两位
<el-input
onkeyup="value=value.replace(/[^1-9]{0,1}(\d*(?:\.\d{0,2})?).*$/g, '$1')"
v-model="state.form.price"
placeholder="请输入费用标准(自动y保留两位小数)"
style="width: 92%"
@change="cccccce"
/>