Javascript RegExp对象
1,RegExp对象的声明。
RegExp对象是正则表达式,能够用来进行javascript的字符串匹配。
常用的声明方法如下:
(1),/pattern/attributes
;
(2),new RegExp(pattern, attributes);
。
其中,pattern
是我们编写的正则表达式。attributes
是对正则表达式的修饰。attributes
的可选的选项有 i
表示按照对大小写不敏感匹配字符串;g
表示在全局范围内匹配字符串;m
表示进行对行匹配。
2,方括号。
方括号主要是用来查找一定范围内的字符串。
表达式 | 描述 | 示例 |
---|---|---|
[abc] | 查找方括号之间的任意字符 | 'bc'.match(/[abc]/); ->['b'] |
[^abc] | 查找不包括在方括号内的字符 | 'abcd'.match(/[^abc]/); -> ['d'] |
[0-9] | 查找任何0至9的数字 | '1dji'.match(/[0-9]/); ->['1'] |
[a-z] | 查找任何a到z之间的字符 | |
[A-Z] | 查找任何A到Z之间的字符 | |
[A-z] | 查找任何A到z之间的字符 |
3,元字符。
拥有特殊含义的字符。
表达式 | 描述 | 示例 |
---|---|---|
. | 查找单个字符,除了换行和行结束符。 | 'That is hot.'.match(/h.t/g) -> ['hat', 'hot'] |
\w | 查找单词字符。 | 'hi!'.match(/\w/g) -> ['h', 'i'] |
\W | 查找非单词字符 | 'hi!'.match(/\W/g) -> ['!'] |
\d | 查找数字字符 | 'hi 10.'.match(/\d/g) -> ['1', '0'] |
\D | 查找非数字字符 | '10!'.match(/\D/g) -> ['!'] |
4,量词。
量词 | 描述 |
---|---|
n+ | 匹配任何至少包括一个n的字符串。 |
n* | 匹配任何包括零个或多个n的字符串。 |
n? | 匹配任何包括零个或一个n的字符串。 |
n{X} | 匹配包含X个n的序列的字符串。 |
n{X,Y} | 匹配包含 X 或 Y 个 n 的序列的字符串。 |
n{X,} | 匹配包含至少 X 个 n 的序列的字符串。 |
n$ | 匹配任何结尾为 n 的字符串。 |
^n | 匹配任何开头为 n 的字符串。 |
5,支持正则表达式的String对象方法。
(1)replace()方法。
replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
语法是:
stringObject.replace(regexp/substr,replacement)
返回的是一个替换之后的新的字符串。
应该注意的是如果regexp有全局g的标志,那么替换的就是String对象中所有匹配的子串,否则则只替换第一个匹配到的子串。
'cat likes hat'.replace(/a/g, 'o');
结果是:
"cot likes hot"
将单词的首字母改为大写。
'hello everyone!'.replace(/\b\w+\b/g, function(word){
return word.substring(0,1).toUpperCase() + word.substring(1);
});
结果是:
"Hello Everyone!"