JavaScript常用工具函数汇总(五)

23,849次阅读
没有评论

共计 1946 个字符,预计需要花费 5 分钟才能阅读完成。

81 校验是否为 IPv6 地址

校验规则:

支持 IPv6 正常格式

支持 IPv6 压缩格式

function isIPv6(str){return Boolean(str.match(/:/g)?str.match(/:/g).length<=7:false && /::/.test(str)?/^([da-f]{1,4}(:|::)){1,6}[da-f]{1,4}$/i.test(str):/^([da-f]{1,4}:){7}[da-f]{1,4}$/i.test(str));
}

82 校验是否为中国大陆第二代居民身份证

校验规则:

共 18 位,最后一位可为 X(大小写均可)

不能以 0 开头

出生年月日会进行校验:年份只能为 18/19/2* 开头,月份只能为 01-12,日只能为 01-31

function isIDCard(str){return /^[1-9][0-9]{5}(18|19|(2[0-9]))[0-9]{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)[0-9]{3}[0-9Xx]$/.test(str);
}

83 校验是否为中国大陆邮政编码

参数 value 为数字或字符串

校验规则:

  • 共 6 位,且不能以 0 开头
function isPostCode(value){return /^[1-9][0-9]{5}$/.test(value.toString());
}

84 校验两个参数是否完全相同,包括类型

校验规则:

  • 值相同,数据类型也相同
function same(firstValue,secondValue){return firstValue===secondValue;}

85 校验字符的长度是否在规定的范围内

校验规则:

  • minInt 为在取值范围中最小的长度
  • maxInt 为在取值范围中最大的长度
function lengthRange(str,minLength,maxLength=9007199254740991) {return Boolean(str.length>= minLength && str.length <= maxLength);
}

86 校验字符是否以字母开头

校验规则:

  • 必须以字母开头
  • 开头的字母不区分大小写
function letterBegin(str){return /^[A-z]/.test(str);
}

87 校验字符是否为纯数字(整数)

校验规则:

  • 字符全部为正整数(包含 0)
  • 可以以 0 开头
function pureNum(str) {return /^[0-9]*$/.test(str);
}
function anysicPunctuation(str){if(!str) return null;
    let arr = str.split('').map(item => {return item = '\' + item;});
    return arr.join('|');
}
function getPunctuation(str){return anysicPunctuation(str) || '\~|\`|\!|\@|\#|\$|\%|\^|\&|\*|\(|\)|\-|\_|\+|\=|\||\|\[|\]|\{|\}|\;|\:|\"|\'|\,|\<|\.|\>|\/|\?';
}
function getExcludePunctuation(str){let regexp = new RegExp(`[${anysicPunctuation(str)}]`,'g');
    return getPunctuation('~`!@#$%^&*()-_+=[]{};:"',<.>/?'.replace(regexp,''));
}

88 返回字符串构成种类 (字母,数字,标点符号) 的数量

LIP 缩写的由来:L(letter 字母) + I(uint 数字) + P(punctuation 标点符号)

参数 punctuation 的说明:

  • punctuation 指可接受的标点符号集
  • 若需自定义符号集,例如“仅包含中划线和下划线”,将参数设置为”-_”即可
  • 若不传值或默认为 null,则内部默认标点符号集为除空格外的其他英文标点符号:~`!@#$%^&*()-_+=[]{};:”‘,<.>/?
function getLIPTypes(str,punctuation=null){let p_regexp = new RegExp('['+getPunctuation(punctuation)+']');
    return /[A-z]/.test(str) + /[0-9]/.test(str) + p_regexp.test(str);
}

89 校验字符串构成的种类数量是否大于或等于参数 num 的值。

通常用来校验用户设置的密码复杂程度。

校验规则:

  • 参数 num 为需要构成的种类(字母、数字、标点符号),该值只能是 1 -3。
  • 默认参数 num 的值为 1,即表示:至少包含字母,数字,标点符号中的 1 种
  • 若参数 num 的值为 2,即表示:至少包含字母,数字,标点符号中的 2 种
  • 若参数 num 的值为 3,即表示:必须同时包含字母,数字,标点符号
  • 参数 punctuation 指可接受的标点符号集,具体设定可参考 getLIPTypes()方法中关于标点符号集的解释。
function pureLIP(str,num=1,punctuation=null){let regexp = new RegExp(`[^A-z0-9|${getPunctuation(punctuation)}]`);
    return Boolean(!regexp.test(str) && getLIPTypes(str,punctuation)>= num);
}

90 清除所有空格

function clearSpaces(str){return str.replace(/[]/g,'');
}

91 清除所有中文字符(包括中文标点符号)

function clearCNChars(str){return str.replace(/[u4e00-u9fa5]/g,'');
}

92 清除所有中文字符及空格

function clearCNCharsAndSpaces(str){return str.replace(/[u4e00-u9fa5]/g,'');
}

93 除保留标点符号集以外,清除其他所有英文的标点符号(含空格)

全部英文标点符号为:~`!@#$%^&*()-_+=[]{};:”‘,<.>/?

参数 excludePunctuation 指需要保留的标点符号集,例如若传递的值为’_’,即表示清除_以外的其他所有英文标点符号。

function clearPunctuation(str,excludePunctuation=null){let regexp = new RegExp(`[${getExcludePunctuation(excludePunctuation)}]`,'g');
    return str.replace(regexp,'');
}

94 校验是否包含空格

function haveSpace(str) {return /[]/.test(str);
}

95 校验是否包含中文字符(包括中文标点符号)

function haveCNChars(str){return /[u4e00-u9fa5]/.test(str);
}

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于1970-01-01发表,共计1946字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)