前端JS常用正则大全,全网最全正则表达式

  • 全网最全正则表达式
    经过多年积累,成功总结我们项目开发常用的正则校验大全,再也不用去百度搜索了
export default {
  /*大于0小于100数字*/
  validateNumber: function validateNumber(val) {
    const reg = /^\d\.([1-9]{1,2}|[0-9][1-9])$|^[1-9]\d{0,1}(\.\d{1,2}){0,1}$|^100(\.0{1,2}){0,1}$/;
    return reg.test(val);
  },
  validdateMobile: function validdateMobile(val) {
    const length = val.length;
    var mobile = /^1([358][0-9]|4[579]|66|7[0135678]|9[89])[0-9]{8}$/;
    return length == 11 && mobile.test(val);
  },
  validPassword: function validPassword(val) {
    //const reg = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,21}$/;
    const reg = /(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[\W_]).{8,15}$/;
    return reg.test(val);
  },
  //# 字符串匹配
  //是否为 数字!整数,浮点数
  isNum: function (num) {
    //# 是否为数组
    return !isNaN(num);
  },
  isEmail: function (mail) {
    //# 是否为 邮箱
    return /^([a-z0-9]+[_\-\.]?)*[a-z0-9]+@([a-z0-9]+[_\-\.]?)*[a-z0-9]+\.[a-z]{2,5}$/i.test(
      mail
    );
  },
  isIdCard: function (card) {
    //# 是否为 身份证
    return /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(card);
  },
  isMobile: function (mobile) {
    //# 是否为 手机
    return /^0*1\d{10}$/.test(mobile);
  },
  isQQ: function (qq) {
    //# 是否为 QQ
    return /^[1-9]\d{4,10}$/.test(qq);
  },
  isTel: function (tel) {
    //# 是否为 电话
    return /^\d{3,4}-\d{7,8}(-\d{1,6})?$/.text(tel);
  },
  isUrl: function (url) {
    //# 是否为 URL
    return /https?:\/\/[a-z0-9\.\-]{1,255}\.[0-9a-z\-]{1,255}/i.test(url);
  },
  isColor: function (color) {
    //# 是否为 16进制颜色
    return /#([\da-f]{3}){1,2}$/i.test(color);
  },
  //@id : 身份证 ,
  // @now : 当前时间 如:new Date('2013/12/12') , '2013/12/12'
  // @age : 允许的年龄
  isAdult: function (id, allowAge, now) {
    //# 是否年龄是否成年
    var age = 0, // 用户 年月日
      nowDate = 0; //当前年月日
    allowAge = parseFloat(allowAge) || 18;
    now = typeof now == "string" ? new Date(now) : now || new Date();

    if (!this.isIdCard(id)) {
      return false;
    }
    //15位身份证
    if (15 == id.length) {
      age = "19" + id.slice(6, 6);
    } else {
      age = id.slice(6, 14);
    }
    // 类型转换 整型
    age = ~~age;
    nowDate = ~~Tydic.date.format("YYYYMMDD", now);
    //比较年龄
    if (nowDate - age < allowAge * 1e4) {
      return false;
    }
    return true;
  },
  //浮点数
  isFloat: function (num, place) {
    //# 是否为 浮点数
    let str = "^(([1-9]\\d*)|(\\d+\\.\\d+)|0)$";
    if (place) str = "^(([1-9]\\d*)|(\\d+\\.\\d{0," + place + "}))$";
    let reg = new RegExp(str);
    return reg.test(num);
  },
  //正整数
  isInt: function (num) {
    //# 是否为 正整数
    return /^[1-9]\d*$/.test(num);
  },
  //是否全为汉字
  isChinese: function (str) {
    //# 是否全为 汉字
    return /^([\u4E00-\u9FA5]|[\uFE30-\uFFA0])+$/gi.test(str);
  },
};



/*大于0小于100数字*/
export function validateNumber(val) {
  const reg = /^\d\.([1-9]{1,2}|[0-9][1-9])$|^[1-9]\d{0,1}(\.\d{1,2}){0,1}$|^100(\.0{1,2}){0,1}$/;
  return reg.test(val);
}

export function validPassword(val) {
  const reg = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,21}$/;
  return reg.test(val);
}
//过滤特殊字符
export function filterSpecial(val) {
  const reg = /[\`~\!\@\#\$%\^\&\*\(\)\+<>\?:"\{\},\.\\\/;'\[\]]/;
  return reg.test(val);
}
//联系方式
export function validContact(val) {
  var reg = /(^[0-9]{3,20}$)/;
  return reg.test(val);
}
// export function validContact(val){
//   var reg =/(^(0[0-9]{2,3}\-)?([2-9][0-9]{6,7})+(\-[0-9]{1,4})?$)|(^((\(\d{3}\))|(\d{3}\-))?(1[358]\d{9})$)/;
//   return reg.test(val);
// }
//身份证
export function card(val) {
  var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
  return reg.test(val);
}
//验证数字包括浮点数
export function validNumber(val) {
  var reg = /^[0-9]+\.?[0-9]*$/;
  return reg.test(val);
}
//金额验证,保留两位小数
export function validMoney(val) {
  var reg = /^([1-9]\d{0,8}|0)(\.\d{1,2})?$/;
  return reg.test(val);
}
//验证合法的姓名
export function validName(val) {
  var reg = /^[\u4e00-\u9fa5]+(·[\u4e00-\u9fa5]+)*$/;
  return reg.test(val);
}
//校验检查人员姓名用逗号隔开
export function validateMultipleName(val) {
  var reg = /^(\w|[\u4e00-\u9fa5])+(,(\w|[\u4e00-\u9fa5])+)*$/;
  return reg.test(val);
}

//校验统一社会信用代码
export function validateSocialCreditCode(val) {
  var reg = /[^_IOZSVa-z\W]{2}\d{6}[^_IOZSVa-z\W]{10}/g;
  return reg.test(val);
}

//校验身份证号
export function validateIdCard(val) {
  var reg = /(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}$)/;
  return reg.test(val);
}
/*
  form 表单验证
*/

//验证手机号
export function validdateMobile(rule, value, callback) {
  if (!/^1[3|4|5|7|8][0-9]{9}$/.test(value)) {
    callback(new Error("请输入正确格式"));
  } else {
    callback()
  }
}

// 表单验证 整数 或者小数 (后两位小数)
export function valiFloatNumber(rule, value, callback) {
  if (value === "") {
    callback(new Error("不能为空"));
  } else if (!/^([1-9]\d{0,8}|0)(\.\d{1,2})?$/.test(value)) {
    callback(new Error("请输入正确格式"));
  } else {
    callback();
  }
}

// 可以为空 小数数字
export function valiEmptyFloatNumber(rule, value, callback) {
  if (value && !/^([1-9]\d{0,8}|0)(\.\d{1,2})?$/.test(value)) {
    callback(new Error("请输入正确格式"));
  } else {
    callback();
  }
}

// 验证正整数
export function valiNumber(rule, value, callback) {
  if (value === "") {
    callback(new Error("不能为空"));
  } else if (!/^[1-9]\d*$/.test(value)) {
    callback(new Error("请输入正确格式"));
  } else {
    callback();
  }
}
// 验证 小数两位数 可以为空
export function valiFloatNumberAndEmpty(rule, value, callback) {
  if (value != "" && !/^([1-9]\d{0,8}|0)(\.\d{1,2})?$/.test(value)) {
    callback(new Error("请输入正确格式"));
  } else {
    callback();
  }
}
export function returnStringNumber(str) {
  if (/^([1-9]\d{0,8}|0)(\.\d{1,4})?$/.test(str)) {
    return parseFloat(str);
  } else {
    return 0;
  }
}
export function returnStringIntNumber(str) {
  if (/^[1-9]\d*$/.test(str)) {
    return parseInt(str);
  } else {
    return 0;
  }
}

注:有待优化的请留言指出

有好的方案也请各位多多指出,感谢感谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值