javascript 正则表达式验证

vue中使用正则表达式

export const validatorCheck = (rule, value, callback) => {

  if (value == '' || value == undefined) {
    callback();
  } else {
    //正则验证
    switch (rule) {
      case 'number': //验证整数
        value.match(/^[0-9]*$/) ? callback() : callback("必须为数字")
        break;
      case 'pws': //数字密码不超过6为
        value.match(/^[a-zA-Z0-9_\-]{6,32}$/) ? callback() : callback("密码不超过6数字")
        break;
      case 'idcard': //身份证
        value.match(/^\d{15}(\d{2}[A-Za-z0-9])?$/) ? callback() : callback("身份证号码格式不正确")
        break;
      case 'phone': //座机
        value.match(/^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/) ? callback() : callback("格式不正确,请使用下面格式:020-88888888")
        break;
      case 'intOrFloat': //验证数字(包括小数)
        value.match(/^\d+(\.\d+)?$/) ? callback() : callback("请输入整数或小数")
        break;
      case 'mobile': //验证手机号
        value.match(/^(13|15|18|17|16|19)\d{9}$/) ? callback() : callback("请输入正确的手机号码")
        break;
      case 'qq': //验证QQ(5-10位)
        value.match(/^[1-9]\d{4,9}$/) ? callback() : callback("请输入正确的QQ号")
        break;
      case 'age': //验证年龄(0-120位)
        value.match(/^(?:[1-9][0-9]?|1[01][0-9]|120)$/) ? callback() : callback("年龄必须是0-120之间")
        break;
      case 'chinese': //验证中文)
        value.match(/^[\Α-\¥]+$/) ? callback() : callback("内容只能包含中文")
        break;
      case 'english': //验证英文
        value.match(/^[A-Za-z]+$/) ? callback() : callback("内容只能包含英文")
        break;
      case 'unnormal': //是否为空和空格
        value.match(/\S/) ? callback() : callback("内容不能为空和全部空格")
        break;
      case 'username': //之前用于验证用户账号格式的
        value.match(/^[a-zA-Z][a-zA-Z0-9_]{5,15}$/) ? callback() : callback("用户名不合法(字母开头,允许6-16字节,允许字母数字下划线)")
        break;
      case 'zip': //邮政编码
        value.match(/^[1-9]\d{5}$/) ? callback() : callback("邮政编码格式不正确")
        break;
      case 'ip': //ip
        value.match(/^(?:(?:2[0-4][0-9]\.)|(?:25[0-5]\.)|(?:1[0-9][0-9]\.)|(?:[1-9][0-9]\.)|(?:[0-9]\.)){3}(?:(?:2[0-5][0-5])|(?:25[0-5])|(?:1[0-9][0-9])|(?:[1-9][0-9])|(?:[0-9]))$/) ? callback() : callback("IP地址格式不正确")
        break;
      case 'name': //验证中文或英文
        (value.match(/^[\Α-\¥]+$/) || value.match(/^\w+[\w\s]+\w+$/)) ? callback(): callback("只能是英文或中文")
        break;
      case 'content': //验证内容不超过30位
        (value.match(/^.{0,30}$/) || value.match(/^\w+[\w\s]+\w+$/)) ? callback(): callback("内容长度只能为0-30位")
        break;
      case 'url': //验证内容不超过30位
        value.match(/^((https|http|ftp|rtsp|mms)?:\/\/)+[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/) ? callback() : callback("请输入有效url地址")
        break;
      case 'email': //验证内容不超过30位
        value.match(/^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/) ? callback() : callback("邮箱格式不正确")
        break;
      case 'date': //日期格式(YY-MM-DD或YY-M-D)
        value.match(/^(?:(?!0000)[0-9]{4}([-]?)(?:(?:0?[1-9]|1[0-2])\1(?:0?[1-9]|1[0-9]|2[0-8])|(?:0?[13-9]|1[0-2])\1(?:29|30)|(?:0?[13578]|1[02])\1(?:31))|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)([-]?)0?2\2(?:29))$/) ? callback() : callback("日期格式不正确(YYYY-MM-DD或YYYY-M-D)")
        break;

    }
  }
}

猜你喜欢

转载自blog.csdn.net/qq_29819449/article/details/80006443