字面量定义正则表达式
ECMAScript通过RegExp类型来支持正则表达式
var expression = / pattern / flags
:模式(pattern)部分可以是任何简单或复杂的正则表达式,标志(flag)部分用来标明正则表达式的匹配模式-
正则表达式的匹配模式支持下列3个标志:
g:表示全局模式,即模式会被应用于所有字符串,而非在发现第一个匹配项时立即停止
i:表示不区分大小写模式
m:表示多行模式,即在到达一行文本末尾时还会继续查找下一行中是否存在与模式匹配的项
-
正则表达式:
使用构造函数创建正则表达式
var pattern = new RegExp("[bc]at","i");
RegExp构造函数接受两个参数:一个是要匹配的 字符串模式(注意不是字面量),两一个是可选的标志字符串
常用方法:
-
pattern.exec(str):
-
pattern.test(str):
在模式与该参数匹配的情况下返回true,否则返回false
String类型也可以利用正则表达式来实现相应的功能:
match方法:
var text = "cat,bat,sat,fat"; var pattern = /.at/; text.match(pattern); // 无论执行多少次,都只会返回 ["cat"] var pattern = /.at/g; text.match(pattern); // 返回 ["cat","bat","sat","fat"]
replace方法:
var text = "cat,fat"; var pattern = /.at/; text.replace(pattern,"skt"); // 无论执行多少次,都只会返回 "skt,fat" var pattern = /.at/g; text.replace(pattern,skt,skt"
search方法:返回字符串第一个匹配项的索引
var text = "cat,fat"; var pattern = /.at/; text.search(pattern); // 无论执行多少次,都只会返回 0 var pattern = /.at/g; text.search(pattern); // 无论执行多少次,都只会返回 0