校驗大全

/**
 * 校驗 包括中文字、英文字母、數字和下劃線
 * 登錄賬號校驗
 */
export function validateAccount(rule, value, callback) {
  let acount = /^(?!_)(?!.*?_$)[a-zA-Z0-9_\u4e00-\u9fa5]+$/
  if (value && (!(acount).test(value))) {
    callback(new Error('賬號不符合規範'))
  } else {
    callback()
  }
}

/**
 * IP地址校驗
 */
 export function 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()
   }
 }

/**
 * 手機號碼校驗
 */
export function 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()
  }
}

/**
 * 電話號碼校驗
 */
export function telephoneNumber(rule, value, callback) {
  if (value && (!(/^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/).test(value))) {
    callback(new Error('電話號碼不符合規範'))
  } else {
    callback()
  }
}

/**
 * 郵箱校驗
 */
export function 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()
  }
}

/**
 * 身份證號碼校驗
 */
export function 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()
  }
}

/**
 * 正整數校驗
 */
export function integerP(rule, value, callback) {
  if (value && !(/^[1-9]\d*$/).test(value)) {
    callback(new Error('只能填寫正整數'))
  } else {
    callback()
  }
}

/**
 * 正數校驗
 */
export function integerP2(rule, value, callback) {
  if (value && !(/^[+]{0,1}(\d+)$|^[+]{0,1}(\d+\.\d+)$/).test(value)) {
    callback(new Error('只能填寫正整數或小數'))
  } else {
    callback()
  }
}

/**
 * 負整數校驗
 */
export function integerN(rule, value, callback) {
  if (value && !(/^-[1-9]\d*$/).test(value)) {
    callback(new Error('只能填寫負整數'))
  } else {
    callback()
  }
}

/**
 * 英文字符校驗
 */
export function 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()
  }
}

/**
 * 中文字符英文字符校驗
 */
export function ChEnText(rule, value, callback) {
  if (value && !(/^[A-Za-z0-9]+$/).test(value)) {
    callback(new Error('只能填寫數字和英文字符'))
  } else {
    callback()
  }
}

/**
 * 中文字符校驗
 */
export function 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()
  }
}

/**
 * 只能輸入英文或者數字
 */
export function enOrnunText(rule, value, callback) {
  if (value && !(/^[A-Za-z0-9]+$/).test(value)) {
    callback(new Error('只能填寫英文或者數字'))
  } else {
    callback()
  }
}

/**
 * 20位數字國標編碼校驗,且爲正整數
 */
export function 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進制數字)
 */
export function 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();
  }
}

/**
 * 校驗地址代碼或者分組代碼
 */
export function 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()
    }
  }
}

/**
 * 校驗字符長度
 */
export function validateLength(rule, value, callback) {
  let codeLen = value.toString().length
  if (codeLen > 18) {
    callback(new Error('輸入的長度不能超過20位,請重新輸入'))
  }
}

/**
 * 校驗簡要案情的字數不超過50個
 */
export function simpleCase(rule, value, callback) {
  let codeLen = value.toString().length
  if (codeLen < 50) {
    callback(new Error('字數不能少於50個,請重新輸入'))
  }
}

/**
 * 校驗簡要案情的字數不超過5個
 */
export function maxFive(rule, value, callback) {
  let codeLen = value.toString().length;
  if (codeLen > 5) {
    callback(new Error('字數不能超過5個,請重新輸入'))
  }
}

/**
 * 數字 ,兩位
 */
export function validateTwoNum(rule, value, callback) {
  let temp = /^[1-9]{2}$/;
  if (!temp.test(value)) {
    callback(new Error('請輸入兩位正整數!'));
  } else {
    callback();
  }
}

/**
 * 校驗經度是否符合規範
 *
 */
export function 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();
  }
}

/**
 * 校驗緯度是否符合規範
 *
 */
export function 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();
  }
}


export function isvalidUsername(str) {
  // const validMap = ['admin', 'editor']
  // return validMap.indexOf(str.trim()) >= 0
  console.log('isvalidUsername:' + str);
  return str.trim().length > 0;
}

/* 合法uri */
export function validateURL(textval) {
  const urlregex = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/
  return urlregex.test(textval)
}

/* 小寫字母 */
export function validateLowerCase(str) {
  const reg = /^[a-z]+$/
  return reg.test(str)
}

/* 大寫字母 */
export function validateUpperCase(str) {
  const reg = /^[A-Z]+$/
  return reg.test(str)
}

/* 大小寫字母  */
export function validatAlphabets(str) {
  const reg = /^[A-Za-z]+$/
  return reg.test(str)
}


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章