正则配合replace用法详解

replace用于在字符串中用一些字符替换另一些字符。
语法:
1
stringObject.replace(regexp/substr,replacement)
参数 描述
regexp/substr 必需。规定子字符串或要替换的模式的 RegExp 对象。请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。
replacement 必需。替换文本或生成替换文本的函数。

下面看看几种示例:

一、使用$1,$2…的例子
1
2
3
4
5
6
7
8
9
// 正则匹配某个值,并在替换的时候是要匹配的值

// 如将 '我们的好朋友JavaScript',我们要给JavaScript加粗,那就要加一个strong标签

var str = "我们的好朋友JavaScript";

str.replace(/(JavaScript)/, "<strong>$1</strong>");

// $1会匹配到括号里的值 多个的话会按顺序取 $1,$2...
二、第二的参数使用函数
1
2
3
4
5
6
7
8
9
10
11
// 还是如同一的例子

var str = "我们的好朋友JavaScript";

str.replace(/JavaScript/, function(val) {

return "<strong>" + val + "</strong>"

});

// 这里我们可以通过判断来返回需要的替换的值,比较更灵活易懂些
三、模板的应用
1
2
3
4
5
6
7
8
9
10
var data = {

name: "Amy",

age: 20

}
var str = "My name is {{name}}.I am {{age}} years old this year";

str.replace(/{{(.*?)}}/g, function(val, key) {return data[key]});

.*?为非贪婪匹配模式