blog icon indicating copy to clipboard operation
blog copied to clipboard

正则表达式常用栗子

Open pb-cheung opened this issue 9 years ago • 0 comments

匹配URL

var strRegex = "^((https|http)?://)(([0-9]{1,3}.){3}[0-9]{1,3}|([0-9a-z_!~*'()-]+.)*)([0-9a-z][0-9a-z-]{0,61})?[0-9a-z].";
var rule = new RegExp(strRegex,"ig");
var url = http://www.qq.com
console.log(rule.test(url));

匹配URL链接中的hash值

location.href.replace(/#[\d\w\=\?\.\&]+/,"")

去除字符串中的空格

str.replace(/(^\s*)|(\s*$)/g, "")

中文字符

/\u4e00-\u9fa5/

标点符号

 /([\[\]\,.?"\(\)+_*\/\\&\$#^@!%~`<>:;\{\}?,。·!¥……()+{}【】、|《》]|(?!\s)'\s+|\s+'(?!\s))/ig

表情emoji

/[\ud83c\udc00-\ud83c\udfff]|[\ud83d\udc00-\ud83d\udfff]|[\u2600-\u27ff]/

不满两位的数字在其前面补0

num.toString().replace(/^([0-9])$/ig,"0$1");

身份证号

公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码

只做长度校验

/(^\d{15}$)|(^\d{17}([0-9]|X))$/

15位的校验

组成结构: 1~6位:地址码。行政区划代码 7~12位:生日期码。构成为yymmdd。 13~15位:顺序码。每个地区出生人口按顺序递增,最后一位奇数分给男的,偶数分给女的。

/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/  

18位的校验

相对于15位的变动: 1.生日期码变为8位,构成为yyyymmdd。 2.增加校验码,即第18位。按照ISO 7064:1983.MOD 11-2校验码计算。

/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])(\d{4}$|\d{3}[X|x])/

手机号

/^(0|86|17951)?(13[0-9]|14[579]|15[^4\D]|17[0135678]|18[0-9])[0-9]{8}$/

中国内地移动终端通讯号码| wiki


强密码

所谓强密码:数字、小写字母、大写字母、符号四种类型组成长度不小于8

 /((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[\W]).{8,64})/g

pb-cheung avatar Jul 29 '15 13:07 pb-cheung