vue验证手机座机号码

data() {
 
    var checkPhone = (rule,value,callback) => {
        let mobile = /^(13[0-9]{9})|(18[0-9]{9})|(14[0-9]{9})|(17[0-9]{9})|(15[0-9]{9})$/;
        let tel = /^\d{3,4}-?\d{7,9}$/;

        if (!tel.test(value)||!mobile.test(value)){
            return callback(new Error('请填写联系电话(座机格式\'区号-座机号码\')'));
        }
    }
  return {
        ruleForm: {
          phoneNum: ''
        },
        rules: {
          phoneNum: [
            { required: true, validator:checkPhone, trigger: 'blur,change' }
          ],
    }
    
    
    }
    
    
现在的问题是如果只验证tel或mobile就可以通过 但是两个放一起就不能通过 哪写错了呢?还是传值有问题?
阅读 9.1k
2 个回答

你的逻辑的意思是 如果这个号码不是座机 或者不是手机号 就报错,反而言之 只有这个号码是座机 并且是手机号的时候才会通过。也就是说不管你输入什么 都会报错,因为座机号和手机号不可能一样

很明显的错误,if 语句里面要用 &&,或者把 ! 去掉

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题