JavaScript RegExp对象
RegExp:正则表达式的简写
什么是RegExp
正则表达式描述了字符的模式对象
当检索某个文本时,可以使用一种模式来描述要检索的内容.RegExp就是这种模式
简单的模式可以是一个单独的字符
更复杂的模式包括了更多的字符,可以用于解析、格式检查、替换等等
可以规定字符串中的检索位置,以及要检索的字符类型等等
语法
var patt=new RegExp(pattern,modifiers)
//或更简单的方法
var patt=/pattern/modifiers
模式描述了一个表达式模型
修饰符描述了检索是否全局,区分大小写等
当使用构造函数创造正则对象时,需要常规的字符转义规则(在前面加反斜杠)
var re = new RegExp("\\w+")
var re = /\w+/
RegExp修饰符
修饰符用于执行不区分大小写和全文搜索
i - 修饰符是用来执行不区分大小写的匹配
g - 修饰符用来执行全文的搜索(而不是在第一个找到就停止,而是找到所有的匹配)
var str = "heLlo wOrld"
str.match(/l/g)//["l","l"]
str.match(/l/i)//["L"]
str.match(/l/gi)//["L","l","l"]
修饰符
RegExp修饰符:
修饰符 | 描述 |
---|---|
i | 执行对大小写不敏感的匹配 |
g | 执行全局匹配(查找所有匹配而非在匹配到第一个元素时停止) |
m | 进行多行匹配 |
方括号
方括号用于查找某个范围内的字符:
表达式 | 描述 |
---|---|
[abc] | 查找方括号之间的任何字符 |
[^abc] | 查找任何不在方括号之间的字符 |
[0-9] | 查找任何从0至9的数字 |
[a-z] | 查找任何从小写a到小写z的字符 |
[A-Z] | 查找任何从大写A到大写Z的字符 |
[A-z] | 查找任何从大写A到小写z的字符 |
[str] | 查找给定集合内的任何字符 |
[^str] | 查找除给定集合内的任何字符 |
元字符
元字符是拥有特殊含义的字符:
元字符 | 描述 |
---|---|
. | 查找单个字符,除了换行和结束符 |
\w | 查找单词字符 |
\W | 查找非单词字符 |
\d | 查找数字 |
\D | 查找非数字字符 |
\s | 查找空白字符 |
\S | 查找非空白字符 |
\b | 匹配单词边界 |
\B | 匹配非单词边界 |
\0 | 查找NUL字符 |
\n | 查找换行符 |
\f | 查找换页符 |
\r | 查找换车符 |
\t | 查找制表符 |
\v | 查找垂直制表符 |
\xxx | 查找以八进制数xxx规定的字符 |
\xdd | 查找以十六进制数dd规定的字符 |
\uxxxx | 查找以十六进制数xxxx规定的Unicode字符 |
量词
量词 | 描述 |
---|---|
n+ | 匹配任何包含至少一个n的字符串 |
n* | 匹配任何包含零个或者多个n的字符串 |
n? | 匹配任何包含零个或者一个n的字符串 |
n{X} | 匹配包含X个n的序列的字符串 |
n{X,Y} | 匹配包含X个或者Y个n的序列字符串 |
n{X,} | 匹配包含至少X个n的序列的字符串 |
n$ | 匹配任何结尾为n的字符串 |
^n | 匹配任何开头为 n 的字符串 |
?=n | 匹配任何其后紧接指定字符串 n 的字符串 |
?!n | 匹配任何其后没有紧接指定字符串 n 的字符串 |
RegExp对象方法
方法 | 描述 |
---|---|
compile | 编译正则表达式 |
exec | 检索字符串中指定的值,返回找到的值,并确定其位置 |
test | 检索字符串中指定的值,返回true或false |
支持正则表达式的Strng对象的方法
方法 | 描述 |
---|---|
search() | 检索与正则表达式想匹配的值 |
match() | 找到一个或多个正则表达式的匹配 |
replace() | 替换与正则表达式匹配的子串 |
split() | 把字符串分割为字符串数组 |
网友评论