在项目中,经常会遇到,对文本框进行校验。
eg. 要求姓名长度为20,中文为10,只能输入中英文。
<input maxlength="20" type="text" @blur="nameblur" v-model="name" placeholder="请输入姓名">
nameblur(e) {
let vm = this;
let userNameWrongAry = ['', '姓名输入有误,请重新输入', '请输入中文或者英文'];
function strLen(str) {
return (function (len) {
for (var i = 0; i < str.length; i++) {
var c = str.charAt(i);
if (/^[u0000-u00ff]$/.test(c)) //匹配双字节
{
len += 1;
} else {
len += 2;
}
}
return len;
})(0);
}
if (vm.name.trim() == '') {
weui.topTips(userNameWrongAry[0], {duration: 3000,});
return false;
}
if (strLen(vm.name.trim()) > 20) {
weui.topTips(userNameWrongAry[1], {duration: 3000,});
return false;
}
let parrent = /^[A-zu4E00-u9FA5s]+$/g;
if (!parrent.test(vm.name.trim())) {
weui.topTips(userNameWrongAry[2], {duration: 3000,});
return false;
}
}