html 代码
<el-form-item label="证件号码" prop="idCard">
<el-input v-model="editForm.idCard" style="width: 40%" clearable
placeholder="证件号码" maxlength="18" show-word-limit></el-input>
</el-form-item>
<el-form-item label="手机号码" prop="mobilephone">
<el-input v-model="editForm.mobilephone" style="width: 40%" clearable
placeholder="手机号码" maxlength="11" show-word-limit></el-input>
</el-form-item>
<el-form-item label="电子邮箱" prop="email">
<el-input v-model="editForm.email" style="width: 40%" clearable placeholder="电子邮箱"></el-input>
</el-form-item>
js 代码
<script>
export default {
name: "userCenter",
data() {
//身份证校验
const isCnNewID = (rule, value, callback) => {
let arrExp = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];//加权因子
let arrValid = [1, 0, "X", 9, 8, 7, 6, 5, 4, 3, 2];//校验码
if (/^\d{17}\d|x$/i.test(value)) {
let sum = 0, idx;
for (let i = 0; i < value.length - 1; i++) {
// 对前17位数字与权值乘积求和
sum += parseInt(value.substr(i, 1), 10) * arrExp[i];
}
// 计算模(固定算法)
idx = sum % 11;
// 检验第18为是否与校验码相等
if (arrValid[idx] == value.substr(17, 1).toUpperCase()) {
callback()
} else {
callback("身份证格式有误")
}
} else {
callback("身份证格式有误")
}
}
return {
userRules: {
idCard: [
{required: true, max: 18, message: '请输入身份证号', trigger: 'blur'},
{validator: isCnNewID, trigger: 'blur'}
],
mobilephone: [
{required: true, message: '手机号不能为空'},
{
type: 'number',
message: '手机号格式不正确',
trigger: 'blur',
transform(value) {
let phonereg = 11 && /^((13|14|15|16|17|18|19)[0-9]{1}\d{8})$/
if (!phonereg.test(value)) {
return false
} else {
return Number(value)
}
}
}
],
email: [
{required: true, message: '请输入邮箱号', trigger: 'blur'},
{
message: '格式不正确',
trigger: 'blur',
transform(value) {
let mailReg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/
if (!mailReg.test(value)) {
return false
} else {
return value
}
}
}
],
}
}
}
}
</script>