正则配合replace用法详解

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

下面看看几种示例:

一、使用1,1,2...的例子
// 正则匹配某个值,并在替换的时候是要匹配的值

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

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

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

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

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

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

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

});

// 这里我们可以通过判断来返回需要的替换的值,比较更灵活易懂些
三、模板的应用
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]});

.*?为非贪婪匹配模式