最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Replace part of string that doesn't match regex - Stack Overflow

programmeradmin3浏览0评论

I am attempting to replace parts of a string that don't match a regular expression pattern using JavaScript. This is functionally equivalent to using the -v flag in a GNU grep to invert results. Here is an example:

// 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('*');
});

I am looking for a regex for pattern. This would be something like the opposite of (fore). I've searched around but haven't been able to implement any related question's answers to fit my needs. Here is a list anyway, maybe it will point us in the right direction:

  • Regular Expressions and negating a whole character group
  • Match everything except for specified strings

I am attempting to replace parts of a string that don't match a regular expression pattern using JavaScript. This is functionally equivalent to using the -v flag in a GNU grep to invert results. Here is an example:

// 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('*');
});

I am looking for a regex for pattern. This would be something like the opposite of (fore). I've searched around but haven't been able to implement any related question's answers to fit my needs. Here is a list anyway, maybe it will point us in the right direction:

  • Regular Expressions and negating a whole character group
  • Match everything except for specified strings
Share Improve this question edited May 23, 2017 at 12:13 CommunityBot 11 silver badge asked Mar 1, 2014 at 18:41 BrannonBrannon 1,3363 gold badges21 silver badges37 bronze badges 0
Add a ment  | 

1 Answer 1

Reset to default 7

If I understand you correctly, this should be one possible solution:

'aforementioned'.replace(new RegExp(pattern + '|.', 'gi'), function(c) {
    return c === pattern ? c : '*';
});

>> "*fore*********"
发布评论

评论列表(0)

  1. 暂无评论