RegExp对象
RegExp对象表示正则表达式,用于对字符串执行检索匹配。
创建RegExp对象的方法
- 使用字面量创建:
var reg = new RegExp(pattern,modifiers)
- 使用new创建:
var reg =/pattern/modifiers;
pattern:模式,描述了一个表达式模型
modifiers:修饰符,描述了检索是否全局,区分大小写等;
修饰符
修饰符 |
描述 |
i |
执行对大小写不敏感的匹配 |
g |
执行全局匹配 |
m |
执行多行匹配 |
y(es6新增) |
“粘连”修饰符,与g类似,也是执行全局匹配,但与之不同的是,g修饰符只要剩余的位置存在就可以匹配,而y修饰符必须确保匹配之后从剩余的第一个位置开始匹配 |
u(es6新增) |
可以处理四个字节的UTF-16编码 |
对象属性
属性 |
描述 |
global |
RegExp对象是否具有标志g |
ignoreCase |
RegExp对象是否具有标志i |
lastIndex |
一个整数,标识下一次匹配的字符位置 |
multiline |
RegExp对象是否具有标志m |
source |
正则表达式的源文本 |
对象方法
方法 |
描述 |
test |
检索字符串中指定的值,找到了返回true,没找到返回false |
exec |
检索字符串中指定的值,找到了返回值(是个数组,包含该值及对应的位置),没找到返回null |
compile |
编译正则表达式,也可以修改原来的表达式 |
String对象支持正则表达式的方法
方法 |
描述 |
match |
找到一个或多个与正则表达式相匹配的字符串 |
replace |
替换与正则表达式匹配的字符串 |
search |
检测与正则表达式相匹配的值 |
元字符
元字符 |
描述 |
. |
查找单个字符,除了换行和结束符 |
\w |
查找单词字符(数字、大小写英文字母、下划线) |
\W |
查找单词字符(非数字、大小写英文字母、下划线) |
\d |
匹配数字字符 |
\D |
匹配非数字字符 |
\s |
匹配空白字符(空格、tab、换行、换页) |
\S |
匹配非空白字符 |
\b |
匹配单词边界 |
\B |
匹配非单词边界 |
\n |
查找换行符 |
\f |
查找换页符 |
\r |
查找回车符 |
\t |
查找制表符 |
\v |
查找垂直制表符 |
\xxx |
查找以八进制数xxx规定的字符 |
\xdd |
查找以十六进制数dd规定的字符 |
\uxxxx |
查找以十六进制数xxx规定的Unicode字符 |
量词
量词 |
描述 |
n+ |
匹配包含至少一个n字符 |
n* |
匹配包含0个或多个n字符 |
n? |
匹配0个或1个n字符 |
{a} |
匹配a个字符 |
{a,} |
匹配至少a个字符 |
{a,b} |
匹配a到b个字符 |
正则表达式模式
表达式 |
描述 |
x|y |
匹配x或y字符 |
( ) |
将括号里面的字符作为整体进行匹配,括号中的内容是一个子表达式,也叫分组 |
[xyz] |
匹配括号中的任意字符 |
[^xyz] |
匹配除了括号中的任意字符 |
/^ |
以…开头 |
[a-z] |
匹配a-z的任意字符 |
[^a-z] |
匹配除了a-z的任意字符 |
(?=pattern) |
正向先行断言,代表一个字符,例如对”a regular expression”这个字符串,要想匹配regular中的re,但不能匹配expression中的re,可以用”re(?=gular)”,该表达式限定了re右边的位置,这个位置之后是gular,但并不消耗gular这些字符,将表达式改为”re(?=gular).”,将会匹配reg,元字符.匹配了g,括号这一砣匹配了e和g之间的位置。 |