JavaScript 中使用 RegExp 对象来描述正则表达式,该对象提供了一系列正则表达式的操作。
定义
在JavaScript中有两种方式定义正则表达式:
- var patt=new RegExp(pattern, modifiers);
- var patt=/pattern/modifiers;
相关的参数说明如下:
- pattern:描述了表达式的模式
- modifiers:用于指定全局匹配、区分大小写的匹配和多行匹配的修饰符
- 第一种使用构造函数的方式中,pattern需要使用餐柜的支付转义规则
var re = new RegExp("\\w+qq"); // 需使用转义
var re = /\w+qq/i;
修饰符可为:
修饰符 | 描述 |
---|---|
i | 执行对大小写不敏感的匹配 |
g | 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止) |
m | 执行多行匹配 |
gi | 全局区分大小写的匹配 |
RegExp 对象的方法
compile() 方法
compile() 方法用于在脚本执行过程中编译正则表达式。也可用于改变和重新编译正则表达式。
- 定义:RegExpObject.compile(regexp,modifier)
- regexp:正则表达式
- modifier:规定匹配的类型
exec() 方法
exec() 方法用于检索字符串中的正则表达式的匹配。如果字符串中有匹配的值返回该匹配值,否则返回 null。
- 定义:RegExpObject.exec(string)
- string:需要搜索的字符串
test() 方法
test() 方法用于检测一个字符串是否匹配某个模式,如果字符串中有匹配的值返回 true ,否则返回 false。
- 定义:RegExpObject.test(string)
- string:要检测的字符串
//查找"Hello"
var patt=/Hello/g;
var result=patt.test(str); // true
支持正则表达式的 String 对象的方法
search() 方法
search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。如果没有找到任何匹配的子串,则返回 -1。
- 定义:string.search(searchvalue)
- searchvalue:查找的字符串或者正则表达式
- 返回值:与指定查找的字符串或者正则表达式相匹配的 String 对象起始位置
var str="Mr. Blue has a blue house";
str.search("blue"); // 15
match() 方法
match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
- 定义:string.match(regexp)
- regexp:规定要匹配的模式的 RegExp 对象
- 返回值: 存放匹配结果的数组。该数组的内容依赖于 regexp 是否具有全局标志 g。 如果没找到匹配结果返回 null
var str="The rain in SPAIN stays mainly in the plain";
var n=str.match(/ain/gi); // ain,AIN,ain,ain
replace() 方法
replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
- 定义:string.replace(searchvalue,newvalue)
- searchvalue:规定子字符串或要替换的模式的 RegExp 对象
- newvalue:一个字符串值。规定了替换文本或生成替换文本的函数
- 返回值:一个新的字符串,是用 replacement 替换了 regexp 的第一次匹配或所有匹配之后得到的
var str="Mr Blue has a blue house and a blue car";
var n=str.replace(/blue/g,"red");
// n 为:Mr red has a red house and a red car