1、只能输入数字
描述:在输入框中,如果输入非数字的内容,则不能输入进去,直接替换为空。
主要操作就是这个keyup.native,意思是键盘抬起时进行替换
<el-input
v-model="form.budgetTotalAmount"
placeholder="请输入总金额"
@keyup.native="keyUpTotalAmount"/>
方法中
keyUpTotalAmount(e) {
let reg=/[`~!@#$%^&*()_\-+=<>?:"{}|,\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘’,。、^\a-\z\A-\Z\u4E00-\u9FA5\uF900-\uFA2D-\u0020]/g,
e.target.value = e.target.value.replace(reg,"");
}
匹配中文和字母:^\a-\z\A-\Z\u4E00-\u9FA5\uF900-\uFA2D-\u0020。 测试很好用。
2、只能输入数字+字母
如标题所示,校验只能输入数字+字母,代码很臭但能跑就行
validatorWalletId(rule, value, callback) {
let regCn = /[·!#¥(——):;“”‘’、,|《。》?、【】[\]]/im;
let patrn =
/[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*
()——\-+={}|《》?:“”【】、;‘',。、]/im;
// 检验汉字
let regCna = /[\u4E00-\u9FA5\uF900-\uFA2D-\u0020]{1,}/;
if (value == undefined) {
callback(new Error("xxx不能为空"));
} else {
let str = value.toString();
if (!str) {
callback(new Error("xxx不能为空"));
} else {
if (patrn.test(value) || regCn.test(value) ||regCna.test(value){
callback(new Error("不允许输入汉字,只能输入数字+字母"));
} else {
callback();
}
}
}
},
3、去除字符串中的所有空格
有时候需要对空格进行控制,原理:就是匹配到空格就replace替换为"",这个引号不能有空格。很好用
let username = loginForm.username.replace(/\s*/g, "");
let password = loginForm.password.replace(/\s*/g, "");
4、含大小写字母,数字,特殊字符
这个就常用于密码的校验了,教资密码、四级密码都是用的这个。很好用
密码不能含有4位键盘横向方向连续的字母
密码不能含有4位连续的数字
密码不能含有连续4位相同的数字或字母
密码不能含有4位连续的字母
newPassword(rule, value, callback) {
let regex =
/(?=.*?[a-z])(?=.*?[A-Z])(?=.*?\d)(?=.*?[*?!&¥$%^#,./@";:><\[\]}{\-=+_\\|》《。,、?’‘“”~ `])/;
// 字母连续规则
let strReg =
/(a(?=b)|b(?=c)|c(?=d)|d(?=e)|e(?=f)|f(?=g)|g(?=h)|h(?=i)|i(?=j)|j(?=k)|k(?=l)|l(?=m)|m(?=n)|n(?=o)|o(?=p)|p(?=q)|q(?=r)|r(?=s)|s(?=t)|t(?=u)|u(?=v)|v(?=w)|w(?=x)|x(?=y)|y(?=z)|z(?=a)){3}[a-z]/i;
// 数字连续规则
let numReg =
/(0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)|9(?=0)){3}\d/;
// 键盘字母横向连续规则
let keyboardHorizontalReg =
/(q(?=w)|w(?=e)|e(?=r)|r(?=t)|t(?=y)|y(?=u)|u(?=i)|i(?=o)|o(?=p)|p(?=q) |a(?=s)|s(?=d)|d(?=f)|f(?=g)|g(?=h)|h(?=j)|j(?=k)|k(?=l)|l(?=a) | z(?=x)|x(?=c)|c(?=v)|v(?=b)|b(?=n)|n(?=m)|m(?=z)){3}[a-z]/i;
// 多个相同字母、数字规则
let sameReg = /(\w)\1{3}/i;
if (!value) {
callback(new Error("密码不能为空"));
} else {
let passlength = value.length;
if (passlength > 16 || passlength < 8) {
callback(new Error("请输入8-16位字符"));
} else {
if (regex.test(value)) {
if (sameReg.test(value)) {
callback(new Error("密码不能含有连续4位相同的数字或字母"));
} else if (strReg.test(value)) {
callback(new Error("密码不能含有4位连续的字母"));
} else if (numReg.test(value)) {
callback(new Error("密码不能含有4位连续的数字"));
} else if (keyboardHorizontalReg.test(value)) {
callback(new Error("密码不能含有4位键盘横向方向连续的字母"));
} else {
callback();
}
} else {
callback(new Error("密码必须含大小写字母,数字,特殊字符"));
}
}
}
},
5、保留两位小数
/(?:^[1-9]([0-9]+)?(?:\.[0-9]{1,2})?$)| (?:^(?:0)$)|(?:^[0-9]\.[0-9](?:[0-9])
6、手机号脱敏显示
let reg=/^(.{3})(?:\d+)(.{4})$/
mobile = mobile.replace(reg,"$1****$2"); //152****9527
7、删除中括号(包含括号)里面的数据
res.replace(/\[.*?\]/g, "") //[000000]操作失败----> 操作失败