基本语法
exec()
函数用于检索字符串中的正则表达式的匹配。
如果字符串中有匹配的值,则返回该匹配值,否则返回null。
代码语言:javascript复制 var str = 'hello'
var pattern = /o/
//输出的结果['o', index: 4, input: 'hello', groups: undefined]
console.log(pattern.exec(str));
分组
正则表达式中()包起来的内容表示一个分组,可以通过分组来提取自己想要的内容。
代码语言:javascript复制 var str = "<div>我是{{name}}</div>"
var pattern = /{{([a-zA-Z] )}}/
var result = pattern.exec(str)
console.log(result);
字符串的replace函数
replace()
函数用于在字符串中用一些字符替换另外一些字符。
var result='123456'.replace('123','abc') //得到result的值为字符串’abc456‘
示例:
代码语言:javascript复制 var str = '<div>我是{{name}}</div>'
var pattern = /{{([a-zA-Z] )}}/
var patternResult = pattern.exec(str)
console.log(patternResult);
str = str.replace(patternResult[0], patternResult[1])
console.log(str);
多次replace
代码语言:javascript复制 var str = '<div>{{name}}今年{{age}}岁</div>'
var pattern = /{{s*([a-zA-Z] )s*}}/
//第一次匹配
var res1 = pattern.exec(str)
str = str.replace(res1[0], res1[1])
console.log(str);//<div>name今年{{age}}岁</div>
//第二次匹配
var res2 = pattern.exec(str)
str = str.replace(res2[0], res2[1]);
console.log(str);//<div>name今年age岁</div>
//第三次匹配
var res3 = pattern.exec(str)
console.log(res3);//null
使用while循环replace
代码语言:javascript复制 var str = '<div>{{name}}今年{{age}}岁</div>'
var pattern = /{{s*([a-zA-Z] )s*}}/
var patternResult = null
while (patternResult = pattern.exec(str)) {
str = str.replace(patternResult[0], patternResult[1])
}
console.log(str);//输出<div>name今年age岁</div>
replace替换为真值
代码语言:javascript复制 var data = { name: '张三', age: 20 }
var str = '<div>{{name}}今年{{age}}岁</div>'
var pattern = /{{s*([a-zA-Z] )s*}}/
var patternResult = null
while (patternResult = pattern.exec(str)) {
str = str.replace(patternResult[0], data[patternResult[1]])
}
console.log(str);//输出<div>张三今年20岁</div>