JavaScript RegExp(正则表达式) 对象
正则表达式是描述字符模式的对象。正则表达式用于在文本上执行模式匹配和“搜索和替换”功能。
var patt = /JC2182/i
示例说明:
- /JC2182/i – 是一个正则表达式。
- JC2182 – 是一种模式(用于搜索)。
- i – 是一个修饰符(将搜索修改为不区分大小写)。
修饰符
修饰符用于执行不区分大小写和全局搜索:
修饰符 | 描述 |
---|---|
g | 执行全局匹配(查找所有匹配项,而不是在第一次匹配后停止) |
i | 执行不区分大小写的匹配 |
m | 执行多行匹配 |
括号
括号用于查找一系列字符:
表达式 | 描述 |
---|---|
[abc] | 找到括号之间的任何字符 |
[^abc] | 找到不在括号之间的任何字符 |
[0-9] | 找到括号内的任何字符(任何数字) |
[^0-9] | 找到不在括号之间的任何字符(任何非数字) |
(xΙy) | 找到指定的任何替代方案 |
元字符
元字符是具有特殊含义的字符:
元字符 | 描述 |
---|---|
. | 查找单个字符,但换行符或行终止符除外 |
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到任意大于X个n序列的任何字符串 |
n$ | 匹配任何字符串,其末尾为n |
^n | 匹配任何字符串在其开头为n |
?=n | 匹配任何后跟特定字符串n的字符串 |
?!n | 匹配任何未跟随特定字符串n的字符串 |
RegExp对象属性
属性 | 描述 |
---|---|
constructor | 返回创建RegExp对象原型的函数 |
global | 检查是否设置了“g”修饰符 |
ignoreCase | 检查是否设置了“i”修饰符 |
lastIndex | 指定开始下一个匹配的索引 |
multiline | 检查是否设置了“m”修饰符 |
source | 返回RegExp模式的文本 |
RegExp对象方法
属性 | 描述 |
---|---|
compile() | 在1.5版中已弃用。 编译正则表达式 |
exec() | 测试字符串中的匹配项。 返回第一个匹配项 |
test() | 测试字符串中的匹配项。 返回true或false |
toString() | 返回正则表达式的字符串值 |