电子邮件:
(非必填)
email: [
{ required: false, message: '请填写邮箱', trigger: 'blur' },
{ type: 'string',
trigger: 'blur',
validator: (rule, value, callback)=> {
if(value&&!/^\w+((-\w+)|(\.\w+))*@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/.test(value)) {
callback(new Error('邮箱格式不正确'))
} else {
callback()
}
}
},
{ type: 'string', message: '长度不能超过30位', trigger: 'blur', max: 30 }
],
身份证:
{
pattern: /(^\d{8}(0\d|10|11|12)([0-2]\d|30|31)\d{3}$)|(^\d{6}(18|19|20)\d{2}(0\d|10|11|12)([0-2]\d|30|31)\d{3}(\d|X|x)$)/,
message: '请输入正确的证件号码',
trigger: 'blur',
},
禁止空格
value=value.replace(/\s+/g,'')
仅输入数字加小数点
value=value.replace(/[^\d.]/g,'')
仅一个小数点
<el-input v-model="val" placeholder="请输入" oninput="value = value.replace(/[^\d.]/g,'').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^\./g, '')"></el-input>
禁止汉字
value=value.replace(/[(\u4E00-\u9FA5)]/g,'')
小数点后只能输 2 位
str = str.replace(/^\D*([0-9]\d*\.?\d{0,2})?.*$/, '$1')
输入框金额类型限制
<el-input @keyup.native="val = proving2(val)"><el-input>
proving2(num) {
var str = num
var len1 = str.substr(0, 1)
var len2 = str.substr(1, 1)
//如果第一位是0,第二位不是点,就用数字把点替换掉
if (str.length > 1 && len1 == 0 && len2 != ".") {
str = str.slice(1)
}
//限制只能输入一个小数点
if (str.indexOf(".") != -1) {
var str_ = str.substr(str.indexOf(".") + 1)
if (str_.indexOf(".") != -1) {
str = str.substr(0, str.indexOf(".") + str_.indexOf(".") + 1)
}
}
//正则替换 限制输入框小数点位数,多出的过滤掉
str = str.replace(/[^\d^\.]+/g, '') // 保留数字和小数点
str = str.replace(/^\D*([0-9]\d*\.?\d{0,2})?.*$/, '$1') // 小数点后只能输 2 位
return str
},