字符 | 描述 |
---|---|
\d | 匹配一个数字 |
\D | 匹配任何一个非数字 |
\w | 匹配一个数字/字母 |
\W | 匹配任何一个非数字/字母 |
\s | 匹配任何一个空白字符,包括空格、制表符、换页符等等 |
\S | 匹配任何一个非空白字符 |
\n | 匹配一个换行符 |
\r | 匹配一个回车符 |
\f | 匹配一个换页符 |
· | 任意匹配字符 |
* | 表示0-n个字符 |
+ | 至少一个字符(1-n) |
? | 表示0或1个字符 |
{n} | 表示n个字符 |
{n,} | 至少n个字符 |
{n,m} | 表示n-m个字符 |
A|B | 匹配A或B |
^ | 表示行的开头 |
$ | 表示行的结束 |
[abc] | a或b或c |
-
Js两种方法创建正则表达式:
1.var re1=/ABC-001/; //ABC/-001
2.var re2=new RegExp("ABC\-001"); //ABC/-001
-
RegExp对象的test()方法用于测试给定的字符串是否符合条件
-
切分字符串
str.split(/[\s]+/);
-
分组
例:
var re=/^(\d{3})-(\d{3,8})$/; //分别定义了两个组 re.exec('010-12345'); //["010-123456","010","12345"]
exec()方法匹配后,会返回一个Array,第一个元素是匹配成功的整个字符串,后面是匹配成功的子串,匹配失败会返回null。
-
全局搜索
var re1=/RegExp/g; var re2=new RegExp("RegExp","g");
-
指定g后,每次运行exec(),正则表达式本身会更新lastIndex属性,表示上次匹配到的最后索引。
-
全局匹配不可使用/^...$/,那样只会最多匹配一次。
-
正则表达式还可以用i标志表示忽略大小写,m标志表示执行多行匹配。
-
-
匹配任意字符 正则: /[^]/
-
匹配ASCII码范围 规则:\x00表示十进制0 ,\xff表示十进制255,0-255正好是ASCII码表可表示的范围。 正则: /[\x00-\xff]/g 说明:同理, /[^\x00-\xff]/g 则表示匹配汉字或者是全角字符。
-
匹配汉字 规则:\u4e00 : 在Unicode码中汉字的开始编码,\u9fa5 : 在Unicode码中汉字的结束编码。 正则: /^[\u4e00-\u9fa5]+$/
-
手机号码检测 规则:[3|4|5|7|8] : 手机号11位,但是第二位数字只有这几种固定的网段。 正则: /^1[3|4|5|7|8]\d{9}$/
-
邮政编码 规则:邮政编码必须为数字,长度为6位且第一位不能为0,示例:224000 正则: /[1-9]\d{5}/
-
电子邮件 规则:以@为上下文表示,左侧只能是数字,字母及下划线组成。 而右侧又以.符号为上下文,左侧与上述一样,而右侧只能为字母结尾。 正则: /^([\w-.]+)@([\w-]+).([a-zA-Z]{2,4})$/
-
匹配前后空格 正则: /^\s+|\s+$/g
-
QQ号匹配 规则:首位不能为0,位数5-12位。 正则: /^[1-9]\d{4,11}$/;
-
匹配网址url的正则表达式 正则: [a-zA-z]+://[^\s]*
-
匹配国内电话号码 正则: \d{3}-\d{8}|\d{4}-\d{7}
-
匹配国内身份证号码 规则:简单的身份证匹配,根据位数以及结尾是否有字母。 正则: /^\d{15}(\d{2}[A-Za-z0-9])?$/
-
匹配IP地址 正则: /^(\d+).(\d+).(\d+).(\d+)$/g
-
验证是否含有^%&',;=?$"等字符 正则: /[^%&',;=?$\x22]+/
-
匹配空行的正则表达式 正则: \n[\s| ]*\r
-
数学正则 整数 : /^[-+]?\d+$/ 浮点数 : /^[-+]?\d+(.\d+)?$/ Chinese : /^[\u0391-\uFFE5]+$/ 实数: ^[-+]?\d+(.\d+)?$