正则表达式
正则表达式
用一定的模式匹配对应的字符串
修饰符
用于执行区分大小写和全局匹配
- i :执行对大小写不敏感的匹配
- g:执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)
- m:执行多行匹配
方括号
用于查找某个范围内的字符
表达式 | 描述 |
---|---|
[abc] | 查找方括号中的所有字符 |
[^abc] | 查找任何不在方括号之间的字符 |
[0-9] | 查找任何从0到9的数字 |
[a-z] | 查找任何从小写a到小写z之间的字符 |
[A-Z] | 查找任何从大写A到大写Z之间的字符 |
[A-z] | 查找任何从大写A到小写z之间的字符 |
[adgk] | 查找给定集合内的任何字符 |
[^adgk] | 查找给定集合外的任何字符 |
[red | blue | green] | 查找任何指定的选项 |
元字符
拥有特殊含义的字符
元字符 | 描述 |
---|---|
· | 查找单个字符,除了换行符和行结束符 |
\w | 查找单词字符 |
\W | 查找非单词字符 |
\d | 查找数字 |
\D | 查找非数字字符 |
\s | 查找空白字符 |
\S | 查找非空白字符 |
\b | 匹配单词边界 |
\B | 匹配非单词边界 |
\0 | 查找NULL字符 |
\n | 查找换行符 |
\f | 查找换页符 |
\r | 查找回车符 |
\t | 查找制表符 |
\v | 查找垂直制表符 |
\xxx | 查找以把机制数xxx规定的字符 |
\xdd | 查找以十六进制dd规定的字符 |
\uxxxx | 查找以十六进制数xxxx规定的Unicode字符 |
量词
用于表示重复次数的含义
量词 | 描述 |
---|---|
n+ | 匹配任何包含至少一个n的字符串 |
n* | 匹配任何包含零个或多个n的字符串 |
n? | 匹配任何包含零个或一个n的字符串 |
n | 匹配包含X个n的序列的字符串 |
n | X是一个正整数,前面的模式n连续出现至少X次时匹配 |
n | X和Y为正整数,模式n连续出现至少X次,至多出现Y次时匹配 |
n$ | 匹配任何结尾为n的字符串 |
^n | 匹配任何开头为n的字符串 |
?=n | 匹配任何其后紧接指定字符串n的字符串 |
?!n | 匹配任何其后没有紧接指定字符串n的字符串 |
ReExp对象方法
方法 | 描述 |
---|---|
compile | 编译正则表达式 |
exec | 检索字符串中指定的值,并确定其位置 |
test | 检索字符串中指定的值,返回true或false |
支持正则表达式的String对象的方法
方法 | 描述 |
---|---|
search | 检索与正则表达式相匹配的值 |
match | 找到一个或多个正则表达式的匹配 |
replace | 替换与震泽表达式匹配的子串 |
split | 把字符串分割为字符串数组 |
正则表达式的使用
- test方法:搜索字符串指定的值,根据结果并返回真或假。
- exec()方法:检索字符串中的指定值,返回值是被找到的值,如果没有发现匹配,返回null。
var patt1 = new RegExp("e");
document.write(patt1.test("The best things in life are free"));
var patt1 = new RegExp("e");
document.write(patt1.exec("The best things in life are free"));