blog
blog copied to clipboard
正则表达式常用栗子
匹配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}$/
强密码
所谓强密码:数字、小写字母、大写字母、符号四种类型组成长度不小于8
/((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[\W]).{8,64})/g