正则表达式(Regular expression ,RegExp)是一种用来匹配字符串的工具,是用一种描述性的语言来给字符串定义一个规则
RegExp语法:
- 直接实例化 var reg=new RegExp(pattern,[,flags])
- 隐式创建 var reg=\pattern\flags
参数说明:pattern指定了正则表达式的模式
flags:g(global)、i(ignoreCase)、m(multiline)
正则表达式对象方法
方法 | 描述 |
---|---|
exec | 在字符串中执行查找匹配,返回一个数组(未匹配返回null),第一个元素是正则表达式匹配到的整个字符串,后面的字符串表示匹配成功的子串 |
test | 在字符串中测试是否匹配,返回true或者false |
complie | 编译正则表达式,用于改变和重新编译正则表达式,编译之后的正则表达式执行速度将会提高(如果该正则表达式只能被使用一次则不会有明显的效果) |
支持正则表达式的string对象的方法
方法 | 描述 |
---|---|
match | 找到一个或多个正则表达式的匹配 |
search | 检索与正则表达式相匹配的值 |
replace | 字符串中执行查找匹配,并使用替换字符串替换掉匹配到的子字符串 |
split | 字符串分割为数组 |
贪婪与非贪婪模式
在整个表达式匹配成功的前提下,尽可能多的匹配称之为贪婪模式,则尽可能少的匹配称之为非贪婪模式
例:
贪婪模式:
var reg=/<div>.*<\/div>/;
console.log(reg.exec(string));
输出结果:["<div>123</div>aa<div>456</div>", index: 0, input: "<div>123</div>aa<div>456</div>", groups: undefined]
非贪婪模式:
var reg=/<div>.*?<\/div>/;
console.log(reg.exec(string));
输出结果:["<div>123</div>", index: 0, input: "<div>123</div>aa<div>456</div>", groups: undefined]