Vue 주민등록번호 전화번호 메 일 등 체크

7687 단어 전단 - 부락
1. 기본 신분증 핸드폰 번호 등 기본 검사 방식
 
/**
 * @desc   ElementUI Form rules     ,       : http://element-cn.eleme.io/#/zh-CN/component/form [       ]
 * @example  rules: {
 *  ip: [
 *    {required: true, message: '     IP', trigger: 'blur'},
 *    {validator: this.$rules.ipAddress, trigger: 'blur'}
 *  ]
 * }
 *

 */
export const validater = {

  /**
   *         、    、      
   *       
   */
  validateAccount(rule, value, callback) {
    let acount = /^(?!_)(?!.*?_$)[a-zA-Z0-9_\u4e00-\u9fa5]+$/
    if (value && (!(acount).test(value))) {
      callback(new Error('       '))
    } else {
      callback()
    }
  },

  /**
   * IP    
   */
  ipAddress(rule, value, callback) {
	if(value && "..." === value){
		callback(new Error('   IP  '))
	}if (value && !(/((25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))/).test(value)) {
      callback(new Error('IP       '))
    } else {
      callback()
    }
  },

  /**
   *       
   */
  phoneNumber(rule, value, callback) {
    if (value && (!(/^[1][34578]\d{9}$/).test(value) || !(/^[1-9]\d*$/).test(value) || value.length !== 11)) {
      callback(new Error('         '))
    } else {
      callback()
    }
  },

  /**
   *       
   */
  telephoneNumber(rule, value, callback) {
    if (value && (!(/^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/).test(value))) {
      callback(new Error('         '))
    } else {
      callback()
    }
  },

  /**
   *     
   */
  emailValue(rule, value, callback) {
    let temp = /^[\w.\-]+@(?:[a-z0-9]+(?:-[a-z0-9]+)*\.)+[a-z]{2,3}$/
    let tempOne = /^[A-Za-zd]+([-_.][A-Za-zd]+)*@([A-Za-zd]+[-.])+[A-Za-zd]{2,5}$/
    if (value && (!(temp).test(value))) {
      callback(new Error('         '))
    } else {
      callback()
    }
  },

  /**
   *        
   */
  idCard(rule, value, callback) {
    if (value && (!(/\d{17}[\d|x]|\d{15}/).test(value) || (value.length !== 15 && value.length !== 18))) {
      callback(new Error('          '))
    } else {
      callback()
    }
  },

  /**
   *      
   */
  integerP(rule, value, callback) {
    if (value && !(/^[1-9]\d*$/).test(value)) {
      callback(new Error('       '))
    } else {
      callback()
    }
  },

  /**
   *      
   */
  integerN(rule, value, callback) {
    if (value && !(/^-[1-9]\d*$/).test(value)) {
      callback(new Error('       '))
    } else {
      callback()
    }
  },

  /**
   *       
   */
  enText(rule, value, callback) {
    // let a = '',
    //   arr = value.split(" ")
    // for (let i = 0; i < arr.length; i++) { //      
    //   a += arr[i];
    // }
    if (value && !(/^[A-Za-z]+$/).test(value)) {
      callback(new Error('        '))
    } else {
      callback()
    }
  },

  /**
   *           
   */
  ChEnText(rule, value, callback) {
    if (value && !(/^[A-Za-z0-9]+$/).test(value)) {
      callback(new Error('           '))
    } else {
      callback()
    }
  },

  /**
   *       
   */
  cnText(rule, value, callback) {
    // let a = '',
    //   arr = value.split(" ")
    // for (let i = 0; i < arr.length; i++) { //      
    //   a += arr[i];
    // }
    if (value && (/[^\u4e00-\u9fa5]/).test(value)) {
      callback(new Error('        '))
    } else {
      callback()
    }
  },

  /**
   *           
   */
  enOrnunText (rule, value, callback) {
    if (value && !(/^[A-Za-z0-9]+$/).test(value)) {
      callback(new Error('          '))
    } else {
      callback()
    }
  },

  /**
   * 20         ,     
   */
  validateDeviceNo (rule, value, callback) {
    if (value && !(/^[1-9]\d*$/).test(value)) {
      callback(new Error('       '))
    } else {
      if (!/^[0-9]{20}$/.test(value)) {
        callback(new Error('   20      !'));
      } else {
        callback();
      }
    }

  },

  /**
   *    Mac  
   * xx-xx-xx-xx-xx-xx     (xx 16    )
   */
  validateMac (rule, value, callback) {
    let temp = /[A-Fa-f0-9]{2}-[A-Fa-f0-9]{2}-[A-Fa-f0-9]{2}-[A-Fa-f0-9]{2}-[A-Fa-f0-9]{2}-[A-Fa-f0-9]{2}/;
    if (!temp.test(value)) {
      callback(new Error('   xx-xx-xx-xx-xx-xx   MAC  !'));
    } else{
      callback();
    }
  },

  /**
   *             
   */
  validateCode (rule, value, callback) {
    let num = /^[1-9]\d*$/
    if (value && !(num).test(value)) {
      callback(new Error('       '))
    } else {
      let codeLen = value.toString().length
      console.log(codeLen)
      if(codeLen > 0 && codeLen % 3 !== 0){
        callback(new Error('        3   '))
      }else if(codeLen>18){
        callback(new Error('         18 ,     '))
      }
      else {
        callback()
      }
    }
  },

  /**
   *       
   */
  validateLength (rule, value, callback) {
    let codeLen = value.toString().length
    if(codeLen>18){
      callback(new Error('         20 ,     '))
    }
  },

  /**
   *    ,  
   */
  validateTwoNum (rule, value, callback) {
    let temp = /^[1-9]{2}$/;
    if (!temp.test(value)) {
      callback(new Error('        !'));
    } else{
      callback();
    }
  },

  /**
  *           
  * 
   */
  checkLongitude(rule, value, callback) {
    let longrg = /^(\-|\+)?(((\d|[1-9]\d|1[0-7]\d|0{1,3})\.\d{0,6})|(\d|[1-9]\d|1[0-7]\d|0{1,3})|180\.0{0,6}|180)$/;
    if(!longrg.test(value)){
      callback(new Error('       0-180,     0 6 !'));
    } else {
      callback();
    }
    },

 /**
  *           
  * 
  */
  checkLatitude(rule, value, callback) {
  var latreg = /^(\-|\+)?([0-8]?\d{1}\.\d{0,6}|90\.0{0,6}|[0-8]?\d{1}|90)$/;
   if(!latreg.test(value)){
     callback(new Error('       0-90,     0 6 !'));
   } else {
     callback();
   }
}
}

2. 상세 한 신분 검사 방식
 
/*          */
Vue.prototype.isIdCard = (idCard) =>{
  let regIdCard=/^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/;
  if(regIdCard.test(idCard)){
    if(idCard.length === 18){
      let idCardWi = new Array( 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 );
      let idCardY = new Array( 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 );
      let idCardWiSum = 0
      for(let i=0;i<17;i++){
        idCardWiSum+=idCard.substring(i,i+1)*idCardWi[i];
      }
      let idCardMod=idCardWiSum%11
      let idCardLast=idCard.substring(17)
      if(idCardMod === 2){
        if(idCardLast === "X"||idCardLast === "x"){
          return true;
        }else{
          Vue.prototype.$message.warning('       !,     ')
          return false;
        }
      }else{
        if(idCardLast === idCardY[idCardMod]){
          return true;
        }else{
          Vue.prototype.$message.warning('       !,     ')
          return false;
        }
      }
    }
  }else{
    Vue.prototype.$message.warning('        !,     ')
    return false
  }
}

 
3. 사용 방식
 
 
/*    */
rules: {
  mobilePhone: [
    {required: true, message: '       ', trigger: 'blur'},
    {validator: this.$rules.phoneNumber, trigger: 'blur'}
  ],
    cardId: [
    {required: true, message: '       ', trigger: 'blur'},
    {validator: this.$rules.idCard, trigger: 'blur'}
  ]
},

간단 한 블 로그 설명 은 자신의 작은 부분 만 기록 할 뿐 부당 한 부분 이 있 으 면 가르침 을 환영 합 니 다. 감사합니다.

좋은 웹페이지 즐겨찾기