目前为止项目中用到的一些校验
发布于 3 年前 作者 houqiang 2408 次浏览 来自 分享
// 判断是否是json字符串
  isJSON(str) {
    if (typeof str == 'string') {
        try {
            var obj=JSON.parse(str);
            if(typeof obj == 'object' && obj ){
                return true;
            }else{
                return false;
            }
        } catch(e) {
            return false;
        }
    }
  },
  //验证手机号
  checkPhone(phone){
    var res = /^1[3456789]\d{9}$/;
    return res.test(phone);//返回true:手机号正确   false:手机号错误
  },
  // 国内座机
  checkTel(phone){
    var res = /\d{3}-\d{8}|\d{4}-\d{7}/;
    return res.test(phone);//返回true:正确   false:错误
  },
  // 验证邮箱(支持中文邮箱)
  checkEmail(email) {
    var res =/^[A-Za-z0-9\u4e00-\u9fa5]+([-_.][A-Za-z\d]+)*@([A-Za-z\d]+[-.])+[A-Za-z\d]{2,5}$/;
    return res.test(email);//返回true:邮箱正确   false:邮箱错误
  },
  // 验证中国大陆身份证号
  checkIdcard(idcard) {
    var res = /(^\d{8}(0\d|10|11|12)([0-2]\d|30|31)\d{3}$)|(^\d{6}(18|19|20)\d{2}(0\d|10|11|12)([0-2]\d|30|31)\d{3}(\d|X|x)$)/;
    return res.test(idcard);//返回true:正确   false:错误
  },
  // 验证中国大陆一代身份证号
  checkIdcard1(idcard){
    var res =/^\d{8}(0\d|10|11|12)([0-2]\d|30|31)\d{3}$/;
    return res.test(idcard);//返回true:正确   false:错误
  },
  // 验证中国大陆二代身份证号
  checkIdcard2(idcard){
    var res = /^\d{6}(18|19|20)\d{2}(0\d|10|11|12)([0-2]\d|30|31)\d{3}(\d|X|x)$/;
    return res.test(idcard);//返回true:身份证正确   false:身份证错误
  },
  // 验证统一社会信用代码和组织机构代码
  CheckSocialCreditCode(code){
    var res = /^[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}$/;
    return res.test(code);//返回true:正确   false:错误
  },
  // 验证是否是图片链接
  isImageUrl(str){
    var res=/^https?:\/\/.*?(?:gif|png|jpg|jpeg|webp|svg|psd|bmp|tif)$/i;
    return res.test(str);//返回true:正确   false:错误
  },
  // 验证是否是视频链接
  isVideoUrl(str){
    var res=/^https?:\/\/.*?(?:swf|avi|flv|mpg|rm|mov|wav|asf|3gp|mkv|rmvb|mp4)$/i;
    return res.test(str);//返回true:正确   false:错误
  },
  // 是否是base64
  isBase64(str){
    var res=/^\s*data:(?:[a-z]+\/[a-z0-9-+.]+(?:;[a-z-]+=[a-z0-9-]+)?)?(?:;base64)?,([a-z0-9!$&',()*+;=\-._~:@/?%\s]*?)\s*$/i;
    return res.test(str);//返回true:正确   false:错误
  },
  // 验证银行卡号
  isBankCard(str){
    var res=/^[1-9]\d{9,29}$/;
    return res.test(str);//返回true:正确   false:错误
  },
  // 中文姓名
  isChineseName(str){
    var res=/^(?:[\u4e00-\u9fa5·]{2,16})$/;
    return res.test(str);//返回true:正确   false:错误
  },
  // 英文姓名
  isEnglishName(str){
    var res=/(^[a-zA-Z]{1}[a-zA-Z\s]{0,20}[a-zA-Z]{1}$)/;
    return res.test(str);//返回true:正确   false:错误
  },
  // 是否是新能源车牌号
  isNewCarCard(str){
    var res=/[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领 A-Z]{1}[A-HJ-NP-Z]{1}(([0-9]{5}[DF])|([DF][A-HJ-NP-Z0-9][0-9]{4}))$/;
    return res.test(str);//返回true:正确   false:错误
  },
  // 非新能源车牌号
  isOldCarCard(str){
    var res=/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领 A-Z]{1}[A-HJ-NP-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/;
    return res.test(str);//返回true:正确   false:错误
  },
  // 车牌号(新能源+非新能源)
  isCarCard(str){
    var res=/^(?:[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领 A-Z]{1}[A-HJ-NP-Z]{1}(?:(?:[0-9]{5}[DF])|(?:[DF](?:[A-HJ-NP-Z0-9])[0-9]{4})))|(?:[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领 A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9 挂学警港澳]{1})$/;
    return res.test(str);//返回true:正确  false:错误
  },
  // 护照 (包含香港、澳门)
  checkPassport(str){
    var res=/(^[EeKkGgDdSsPpHh]\d{8}$)|(^(([Ee][a-fA-F])|([DdSsPp][Ee])|([Kk][Jj])|([Mm][Aa])|(1[45]))\d{7}$)/;
    return res.test(str);//返回true:正确  false:错误
  },
  // 帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线组合)
  checkAccount(str){
    var res=/^[a-zA-Z][a-zA-Z0-9_]{4,15}$/;
    return res.test(str);//返回true:正确  false:错误
  },
  // 纯中文汉字
  checkChineseWords(str){
    var res=/^(?:[\u3400-\u4DB5\u4E00-\u9FEA\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA1F\uFA21\uFA23\uFA24\uFA27-\uFA29]|[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0])+$/;
    return res.test(str);//返回true:正确  false:错误
  },
  // 纯英文字母
  checkEnglistWords(str){
    var res=/^[a-zA-Z]+$/;
    return res.test(str);//返回true:正确  false:错误
  },
  // 是否是小数
  isDecimal(str){
    var res=/^\d+\.\d+$/;
    return res.test(str);//返回true:正确  false:错误
  },
  // 纯数字
  isNumber(str){
    var res=/^\d{1,}$/;
    return res.test(str);//返回true:正确  false:错误
  },
  // qq号
  isQQNumber(str){
    var res=/^[1-9][0-9]{4,10}$/;
    return res.test(str);//返回true:正确  false:错误
  },
  // 微信号 6至20位,以字母开头,字母,数字,减号,下划线
  checkWxCode(str){
    var res=/^[a-zA-Z][-_a-zA-Z0-9]{5,19}$/;
    return res.test(str);//返回true:正确  false:错误
  },
  // 中国邮政编码
  checkChinaPostalCode(str){
    var res=/^(0[1-7]|1[0-356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[0-5]|8[013-6])\d{4}$/;
    return res.test(str);//返回true:正确  false:错误
  },
  // 判断字符串中是否含有表情
  isEmojiCharacter(substring) {
    // if(isEmojiCharacter(str)){console.log('不能含有表情')}
    for (var i = 0; i substring.lengthi++) {
      var hs = substring.charCodeAt(i);
      if (0xd800 <= hs && hs <= 0xdbff) {
        if (substring.length > 1) {
          var ls = substring.charCodeAt(i + 1);
          var uc = ((hs - 0xd800) * 0x400) + (ls - 0xdc00) + 0x10000;
          if (0x1d000 <= uc && uc <= 0x1f77f) {
            return true;
          }
        }
      } else if (substring.length > 1) {
        var ls = substring.charCodeAt(i + 1);
        if (ls == 0x20e3) {
          return true;
        }
      } else {
        if (0x2100 <= hs && hs <= 0x27ff) {
          return true;
        } else if (0x2B05 <= hs && hs <= 0x2b07) {
          return true;
        } else if (0x2934 <= hs && hs <= 0x2935) {
          return true;
        } else if (0x3297 <= hs && hs <= 0x3299) {
          return true;
        } else if (hs == 0xa9 || hs == 0xae || hs == 0x303d || hs == 0x3030 || hs == 0x2b55 || hs == 0x2b1c || hs == 0x2b1b || hs == 0x2b50) {
          return true;
        }
      }
    }
  },
  // 判断字符串中是否含有特殊字符
  isTeShuString(substring){
    var reg = /[~#^$@%&!?%*]/gi;
    return reg.test(substring);
  },

不足之处忘大家指正,非常感谢

1 回复

这样的分享竟然没人点赞。

回到顶部