JavaScript RegExp 对象
RegExp:是正则表达式(regular expression)的简写
正则表达式用于对字符串模式匹配及检索替换,是对字符串执行模式匹配的强大工具
语法:
var patt=new RegExp(pattern,modifiers);
或者
var patt=/pattern/modifiers;
其中:
pattern:代表正则表达式
modifiers:代表修饰符
修饰符:
i 执行对大小写不敏感的匹配。
g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
m 执行多行匹配。
案例(匹配hello、忽略大小写):
var str = "HELLO world!";
var patt1 = /hello/i;
document.write(str.match(patt1));
输出:
HELLO
注意:当使用构造函数创造正则对象时,需要常规的字符转义规则(在前面加反斜杠 \)。如,匹配\w时需要加\,以下是等价的:
// +表示匹配一次或多次
var re = new RegExp("\\w+");
var re = /\w+/;
方括号
用于查找某个范围内的字符:
[abc] 查找方括号之间的任何字符。
[^abc] 查找任何不在方括号之间的字符。
[0-9] 查找任何从 0 至 9 的数字。
[a-z] 查找任何从小写 a 到小写 z 的字符。
[A-Z] 查找任何从大写 A 到大写 Z 的字符。
[A-z] 查找任何从大写 A 到小写 z 的字符。
[adgk] 查找给定集合内的任何字符。
[^adgk] 查找给定集合外的任何字符。
元字符
拥有特殊含义的字符
. 查找单个字符,除了换行和行结束符。
\w 查找数字、字母及下划线。
\W 查找非单词字符。
\d 查找数字。
\D 查找非数字字符。
\s 查找空白字符。
\S 查找非空白字符。
\b 匹配单词边界。
\B 匹配非单词边界。
\0 查找 NULL 字符。
\n 查找换行符。
\f 查找换页符。
\r 查找回车符。
\t 查找制表符。
\v 查找垂直制表符。
量词
定义正则匹配的次数
? 匹配0次或1次
+ 匹配1次或多次
* 匹配0次或多次
{n} 匹配n次
{n,} 匹配n次或n次以上
{n,m} 匹配n次到m次
RegExp 对象方法
test()
搜索字符串指定的值,根据结果返回true或falsevar patt1=new RegExp("a"); document.write(patt1.test("abc"));
输出:
true
exec()
检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 nullvar patt1=new RegExp("a"); document.write(patt1.exec("abc"));
输出:
a
toString()
返回正则表达式的字符串var patt = new RegExp("RUNOOB", "g"); var res = patt.toString(); document.write(res);
输出:
/RUNOOB/g
支持正则表达式的 String 对象的方法
search()
检索匹配正则表达式的值的个数var str="Visit Runoob!"; var n=str.search("Runoob"); document.write(n);
输出:
6
match()
匹配满足正则表达式的值,如果没有找到任何匹配的文本,返回 null。否则,它将返回一个数组var str="abcabcdabcde"; var n=str.match(/abc/g); document.write(n);
输出:
[abc,abc,abc]
replace()
替换与正则表达式匹配的子串。var str="hello world!"; var n=str.replace("hello","你好"); document.write(n);
输出:
你好 world!
split()
把字符串分割为字符串数组。var str="2022-1-1"; var n=str.split("-"); document.write(n);
输出:
[2022,1,1]
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。