在线测试工具:http://tool.oschina.net/regex/
正则表达式手册:http://tool.oschina.net/uploads/apidocs/jquery/regexp.html
学习教程:https://deerchao.net/tutorials/regex/regex.htm
简写方法,用 2个 / 将需要正则的括起来。
符号:https://www.cnblogs.com/kuqs/p/5727409.html
^:当不在 [ ] 中时表示 以xxx开头的内容
$:表示以xxx结尾
\:转义后面连接的字符
.:表示一个非换行的字符
*:表示0个或多个字符
[]:是定义匹配的字符范围
https://www.cnblogs.com/ruby-tx/p/6209656.html
https://www.jb51.net/article/88838.htm
xxxxxx yyyy MM dd 375 0 十八位
xxxxxx yy MM dd 75 0 十五位
地区: [1-9]\d{5} ^[1-9]表示
以1到9的某位数字开头 , \d{5}表示5位整数 ,加一起就是6位数
年的前两位: (18|19|([23]\d))
1800-3999 表示 18 或者19 或者 2和3中的某个数字加\d,\d匹配0-9任意一个数字
年的后两位: \d{2}
月份: ((0[1-9])|(10|11|12))
天数: (([0-2][1-9])|10|20|30|31)
闰年不能禁止29+
三位顺序码: \d{3}
两位顺序码: \d{2}
校验码: [0-9Xx]
正则表达式
十八位: ^[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{2}$
总:
( ^[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{2}$
)
事例:
function
isCardNo(card)
{
// 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X
var
reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
if
(reg.test(card) ===
false
)
{
alert(
"身份证输入不合法"
);
return
false
;
}
}
去空格:
1 去掉左边空格
name.replace(/^\s*/g,"");
2 去掉右边空格
name.replace(/\s*$/g,"");
3 去掉前后空格
smSmsModelName.replace(/(^\s*)|(\s*$)/g,"");
4 去掉所有的空格
name.replace(/\s+/g,"");
5 手机号码的正则表达式
varpartten = /^((\d3\d3)|(\d{3}\-))?1[3|4|5|6|7|8|9][0-9]\d{8}$/ ;