<el-form
:model="saveData"
:ref="'ValidateForm'"
:rules="setRules"
label-width="80px">
<el-form-item label="手机号码" prop="mobile">
<el-input v-model="saveData.mobile"></el-input>
</el-form-item>
</el-form>
export default {
data(){
const validPhone = (rule, value, callback) => {
// 港澳台及国外手机号正则表达式(这里使用了一个较为宽松的正则,可能需要根据实际需求调整)
// 例如:允许以+开头表示国际区号,后面跟数字、空格或-,再跟数字
const chinaPhoneRegex = /^1[0-9]{10}$/;
const internationalPhoneRegex = /(\+?\d{1,3}[- ]?)?\d{10,15}$/;
if (!value) {
return callback(new Error('手机号不能为空'));
} else if (chinaPhoneRegex.test(value) || internationalPhoneRegex.test(value)) {
callback();
} else {
return callback(new Error('请输入有效的手机号'));
}
}
return {
saveData: {
mobile: '',
},
setRules: {
mobile: [
{ required: true, trigger: 'blur', validator: validPhone },
],
},