JS Code block 代码块–regex 正则表达式

星期一, 2023-04-17 | Author: Lee | computer, 前端 | 451 views

regex 正则表达式
是否由 26 个英文字母组成的字符串
是否由 26 个英文字母的大写组成的字符串
是否由 26 个英文字母的小写组成的字符串
是否为数字
是否为中文
是否为手机号
是否电子邮件
是否为座机号
是否为身份证
密码验证
邮政编码
是否为qq号
是否为金额
是否为Url
是否为ip
严格的身份证校验
移除标签
是否为 HTML 标签
检查是否为特殊字符
是否为有效的统一社会信用代码
是否为有效的A股代码
是否为有效的银行卡号
是否为有效的 base64格式
是否为有效的ed2k链接
是否为有效的IP v4
是否为有效的IP v6
是否为有效的md5格式(32位)
是否为有效的护照
是否为有效的子网掩码

/**
 * 是否由 26 个英文字母组成的字符串
 * @param val string
 * @return {boolean}
 */
function isAZaz(val){
    return /^[A-Za-z]+$/.test(val);
}
 
/**
 * 是否由 26 个英文字母的大写组成的字符串
 * @param val
 * @return {boolean}
 */
function isAZ(val){
    return /^[A-Z]+$/.test(val);
}
 
/**
 * 是否由 26 个英文字母的小写组成的字符串
 * @param val
 * @return {boolean}
 */
function isaz(val){
    return /^[a-z]+$/.test(val);
}
 
/**
 * 是否为数字
 * @return {boolean}
 */
function isNumber(str) {
    return /^[0-9]$/.test(str)
}
 
/**
 * 是否为中文
 * @return {boolean}
 */
function isChinese(str) {
    return /^[\u4E00-\u9FA5]+$/.test(str)
}
 
/**
 * 是否为手机号
 * @return {boolean}
 */
function isPhone(str) {
    return /^1[3|4|5|6|7|8|9][0-9]{9}$/.test(str)
}
 
/**
 * 是否电子邮件
 * @param val
 * @return {boolean}
 */
function isEmail(val){
    return /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/.test(val) || /w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*/.test(val);
}
 
/**
 * 是否为座机号
 * @return {boolean}
 */
function isTel(str) {
    return /^(0\d{2,3}-\d{7,8})(-\d{1,4})?$/.test(str)
}
 
/**
 * 是否为身份证
 * @return {boolean}
 */
function isIDCard(str) {
    return /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(str)
}
 
/**
 * 密码验证
 * 密码以字母开头,长度在6~18之间,只能包含字母、数字和下划线
 * @return {boolean}
 */
function isPWD(str) {
    return /^[a-zA-Z]\w{5,17}$/.test(str)
}
 
/**
 * 邮政编码
 * @return {boolean}
 */
function isPostal(str) {
    return /[1-9]\d{5}(?!\d)/.test(str)
}
 
/**
 * 是否为qq号
 * @param str
 * @return {boolean}
 */
function isQQ(str) {
    return /^[1-9][0-9]{4,9}$/.test(str)
}
 
/**
 * 是否为金额
 * 金额(小数点2位)
 * @param str
 * @return {boolean}
 */
function isMoney(str) {
    return /^\d*(?:\.\d{0,2})?$/.test(str)
}
 
/**
 * 是否为Url
 * @param str
 * @return {boolean}
 */
function isUrl(str) {
    return /(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/.test(str)
}
 
/**
 * 是否为ip
 * @param str
 * @return {boolean}
 */
function isIp(str) {
    return /((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d))/.test(str)
}
 
/**
 * 严格的身份证校验
 */
function isStrictIDCard(sId) {
    if (!/(^\d{15}$)|(^\d{17}(\d|X|x)$)/.test(sId)) {
        alert("你输入的身份证长度或格式错误");
        return false;
    }
    //身份证城市
    let aCity = {
        11: "北京",
        12: "天津",
        13: "河北",
        14: "山西",
        15: "内蒙古",
        21: "辽宁",
        22: "吉林",
        23: "黑龙江",
        31: "上海",
        32: "江苏",
        33: "浙江",
        34: "安徽",
        35: "福建",
        36: "江西",
        37: "山东",
        41: "河南",
        42: "湖北",
        43: "湖南",
        44: "广东",
        45: "广西",
        46: "海南",
        50: "重庆",
        51: "四川",
        52: "贵州",
        53: "云南",
        54: "西藏",
        61: "陕西",
        62: "甘肃",
        63: "青海",
        64: "宁夏",
        65: "新疆",
        71: "台湾",
        81: "香港",
        82: "澳门",
        91: "国外"
    };
    if (!aCity[parseInt(sId.substr(0, 2))]) {
        alert("你的身份证地区非法");
        return false;
    }
 
    // 出生日期验证
    let sBirthday = (
            sId.substr(6, 4) +
            "-" +
            Number(sId.substr(10, 2)) +
            "-" +
            Number(sId.substr(12, 2))
        ).replace(/-/g, "/"),
        d = new Date(sBirthday);
    if (
        sBirthday !=
        d.getFullYear() + "/" + (d.getMonth() + 1) + "/" + d.getDate()
    ) {
        alert("身份证上的出生日期非法");
        return false;
    }
 
    // 身份证号码校验
    let sum = 0,
        weights = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2],
        codes = "10X98765432";
    for (let i = 0; i < sId.length - 1; i++) {
        sum += sId[i] * weights[i];
    }
    let last = codes[sum % 11]; //计算出来的最后一位身份证号码
    if (sId[sId.length - 1] != last) {
        alert("你输入的身份证号非法");
        return false;
    }
    return true;
}
 
/**
 * 是否为 HTML 标签
 * @param {string} str
 * @returns {boolean}
 * @example
 * isHTML('<p>123</p>');
 * // => true
 */
function isHTML(str) {
  let reg = /<("[^"]*"|'[^']*'|[^'">])*>/;
  return reg.test(str);
}
 
/**
 * 检查是否为特殊字符
 * @param {string} value 正则校验的变量
 * @returns {boolean} 正则校验结果 true: 是特殊字符 false: 不是特殊字符
 */
function isSpecialChar(value) {
  var regEn = /[`~!@#$%^&*()_+<>?:"{},.\/;'[\]\s]/im;
  var regCn = /[·!#¥(——):;“”‘、,|《。》?、【】[\]\s]/im;
 
  return regEn.test(value) || regCn.test(value);
}
 
/**
 * 是否为有效的统一社会信用代码
 * @param {string} val
 * @returns {boolean}
 * @example
 * isUnifiedSocialCreditCode('91230184MA1BUFLT44');
 * // => true
 * isUnifiedSocialCreditCode('92371000MA3MXH0E3W');
 * // => true
 */
function isUnifiedSocialCreditCode(val) {
  const reg = /[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}/;
  return reg.test(val);
}
 
/**
 * 是否为有效的A股代码
 * @param {string} val
 * @returns {boolean}
 * @example
 * isValidAShareCode('sz000858');
 * // => true
 * isValidAShareCode('SZ002136');
 * // => true
 * isValidAShareCode('SH600600');
 * // => true
 * isValidAShareCode('sh600600');
 * // => true
 */
function isValidAShareCode(val) {
  const reg = /^(s[hz]|S[HZ])(000[\d]{3}|002[\d]{3}|300[\d]{3}|600[\d]{3}|60[\d]{4})$/;
  return reg.test(val);
}
 
/**
 * 是否为有效的银行卡号(10到30位, 覆盖对公/私账户, 参考[微信支付](https://pay.weixin.qq.com/wiki/doc/api/xiaowei.php?chapter=22_1))
 * @param {string} val
 * @returns {boolean}
 * @example
 * isValidBankNo('6234567890');
 * // => true
 * isValidBankNo('6222026006705354217');
 * // => true
 */
function isValidBankNo(val) {
  const reg = /^[1-9]\d{9,29}$/;
 
  return reg.test(val);
}
 
/**
 * 是否为有效的 base64格式
 * @param {string} val
 * @returns {boolean}
 * @example
 * isValidBase64Format('data:image/gif;base64,xxxx==')
 * => true
 */
function isValidBase64Format(val) {
  const reg = /^\s*data:(?:[a-z]+\/[a-z0-9-+.]+(?:;[a-z-]+=[a-z0-9-]+)?)?(?:;base64)?,([a-z0-9!$&',()*+;=\-._~:@/?%\s]*?)\s*$/i;
  return reg.test(val);
}
 
/**
 * 是否为有效的ed2k链接(宽松匹配)
 * @param {string} val
 * @returns {boolean}
 * @example
 * isValidEd2kLinkLoose('ed2k://|file|%E5%AF%84%E7%94%9F%E8%99%AB.PARASITE.2019.HD-1080p.X264.AAC-UUMp4(ED2000.COM).mp4|2501554832|C0B93E0879C6071CBED732C20CE577A3|h=5HTKZPQFYRKORN52I3M7GQ4QQCIHFIBV|/');
 * // => true
 */
function isValidEd2kLinkLoose(val) {
  const reg = /^ed2k:\/\/\|file\|.+\|\/$/;
  return reg.test(val);
}
 
/**
 * 是否为有效的IP v4
 * @param {string} val
 * @returns {boolean}
 * @example
 * isValidIPV4('172.16.0.0');
 * // => true
 * isValidIPV4('127.0.0.0');
 * // => true
 */
function isValidIPV4(val) {
  const reg = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
  return reg.test(val);
}
 
/**
 * 是否为有效的IP v6
 * @param {string} val
 * @returns {boolean}
 * @example
 * isValidIPV6('2031:0000:130f:0000:0000:09c0:876a:130b');
 * // => true
 */
function isValidIPV6(val) {
  const reg = /^((([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))$/i;
  return reg.test(val);
}
 
/**
 * 是否为有效的md5格式(32位)
 * @param {string} val
 * @returns {boolean}
 * @example
 * isValidMD5('21fe181c5bfc16306a6828c1f7b762e8');
 * // => true
 */
function isValidMD5(val) {
  const reg = /^[a-f0-9]{32}$/;
  return reg.test(val);
}
 
/**
 * 是否为有效的护照(包含香港、澳门)
 * @param {string} val
 * @returns {boolean}
 * @example
 * isValidPassport('s28233515');
 * // => true
 * isValidPassport('141234567');
 * // => true
 * isValidPassport('159203084');
 * // => true
 * isValidPassport('MA1234567');
 * // => true
 * isValidPassport('K25345719');
 * // => true
 */
function isValidPassport(val) {
  const reg = /(^[EeKkGgDdSsPpHh]\d{8}$)|(^(([Ee][a-fA-F])|([DdSsPp][Ee])|([Kk][Jj])|([Mm][Aa])|(1[45]))\d{7}$)/;
  return reg.test(val);
}
 
/**
 * 是否为有效的子网掩码
 * @param {string} val
 * @returns {boolean}
 * @example
 * isValidSubnetMask('255.255.255.0');
 * // => true
 */
function isValidSubnetMask(val) {
  const reg = /^(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])(?:\.(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])){3}$/;
  return reg.test(val);
}
 
« 前一个:数组(array)下一个:图片 »
更多工具推荐
在线时间戳转换工具
JSON在线编辑工具
在线Navicat加解密mysql连接的密码工具

Tags:

文章作者: Lee

本文地址: https://www.pomelolee.com/2365.html

除非注明,Pomelo Lee文章均为原创,转载请以链接形式标明本文地址

No comments yet.

Leave a comment

Search

文章分类

Links

Meta