正则表达式的用途
- 测试字符串的某个模式
- 替换文本
- 根据模式匹配从一个字符串中提取子字符串
正则表达式的语法
var re = new RegExp('a');var re = new RegExp('a', 'i');g 全文查找, I 忽略大小写, m 多行查找 var re = /a/gi;var re = /^xiao$/ivar re = /\s/; \s匹配任何空白字符,包括空格、制表符、换页符等var re = /^[a-z]/i;var re = /^[a-z]+\s+\d+$/i; +至少出现一次,\d表示数字var re = /^[a-z]+\s(\d+)$/i; 用()来创建子匹配- 元字符:
( [ { \ ^ $ | ) ? * + . - 使用元字符必须进行转义
- 如
var re = /\?/, var re = new RegExp("\\?"); //匹配问号
- 预定义特殊字符
\n 换行符\r 回车符\t 制表符\f 换页符\cX 与X对应的控制字符\b 退格符\v 垂直制表符\0 空字符
- 预定义类
. 匹配除换行符之外的任何一个字符\d 匹配数字\D 非数字\s 匹配一个空白字符\S 非空白字符\w 匹配字母数字下划线\W 非字母数字下划线
- 量词
* 匹配>=0次+ 匹配>=1次? 匹配0次或1次{n} 匹配n次{n,} 匹配>=n次{n,m} 匹配最少n次最多m次
- 贪婪量词匹配与惰性量词匹配
- 贪婪量词匹配会首先将整个字符串匹配,若不匹配则去掉最后一个字符匹配,依次进行。
- 惰性量词匹配会首先将第一个字符当成匹配,依次增加。
- 惰性量词仅仅在贪婪两次后面加
?
\d : 0-9之间的任意一个数字 \d只占一个位置
\w : 数字,字母 ,下划线 0-9 a-z A-Z _
\s : 空格或者空白等
\D : 除了\d
\W : 除了\w
\S : 除了\s
. : 除了\n之外的任意一个字符
\ : 转义字符
| : 或者
() : 分组
\n : 匹配换行符
\b : 匹配边界 字符串的开头和结尾 空格的两边都是边界 => 不占用字符串位数
^ : 限定开始位置 => 本身不占位置
$ : 限定结束位置 => 本身不占位置
[a-z] : 任意字母 []中的表示任意一个都可以
[^a-z] : 非字母 []中^代表除了
[abc] : abc三个字母中的任何一个 [^abc]除了这三个字母中的任何一个字符
String对象一些和正则表达式相关的方法
.match();.replace();.search();.split();