我正在尝试使用JavaScript替换不匹配正则表达式模式的字符串部分。这在功能上等同于在GNU grep中使用-v
标志来反转结果。这是一个例子:
// I want to replace all characters that don't match "fore"
// in "aforementioned" with "*"
'aforementioned'.replace(new RegExp(pattern, 'i'), function(match){
//generates a string of '*' that is the length of match
return new Array(match.length).join('*');
});
我正在寻找pattern
的正则表达式。这与(fore)
的反面相似。我已经四处搜索但未能实现任何相关问题的答案以满足我的需求。无论如何,这是一个列表,也许它会指出我们正确的方向:
答案 0 :(得分:7)
如果我理解正确,这应该是一个可能的解决方案:
'aforementioned'.replace(new RegExp(pattern + '|.', 'gi'), function(c) {
return c === pattern ? c : '*';
});
>> "*fore*********"