如何在javascript
中应用regex
替换时找到替换的子字符串
Main string : abcSSSdeSSfghEEEijSSSkEEElmSSSnSSSEEEopEEE
我想替换所有以' SSS'开头的最小长度子串。并以EEE'结束。与。*
应用所需的功能后,我应该修改字符串
abc.*ij.*lmSSSn.*opEEE
以及替换字符串的数组如下:
[ SSSdeSSfghEEE, SSSkEEE, SSSEEE ]
如何有效地实现上述期望的功能
答案 0 :(得分:3)
将函数作为第二个参数传递给String.replace:
var replacements = [];
var newString = oldString.replace(/*regex pattern here*/, function(match){
replacements.push(match);
return 'some replacement string';
});
答案 1 :(得分:1)
Javascript的replace
让我们传递一个函数,因此我们可以收集匹配的值:
var arr = []
string.replace(/SSS.*?EEE/g, function (match) {
arr.push(match)
return '.*'
})
模式中的.*?
确保它与最小长度字符串匹配,并且不会尝试匹配从第一个SSS
到最后一个EEE
。