考虑以下代码:
function Matcher(source, search) {
var opts = search.split('');
for (var i = 0; i < opts.length; i++) {
opts[i] = '(' + opts[i] + ')';
}
opts = opts.join('.*');
var regexp = new RegExp(opts, 'gi');
source = source.replace(regexp, function () {
console.log(arguments);
return arguments[1];
});
return source;
}
您调用将源作为第一个参数传递的函数,并将您需要匹配的作为第二个参数。
我需要的是用巧合周围的粗体标签替换所有捕获组。
例如,考虑以下情况:
var patt = /m([a-z0-9\-_]*?)r([a-z0-9\-_]*?)i([a-z0-9\-_]*?)e([a-z0-9\-_]*\.[a-z]+)/gi;
var newFileName = fileName.replace(patt, "<strong>m</strong>$1<strong>r</strong>$2<strong>i</strong>$3<strong>e</strong>$4");
这段代码是特里对我上一个问题的回答,但这里的问题是你需要确切地知道你想要替换什么,我需要它动态。
有什么想法吗?