从字符串中除去一个域以外的所有域

时间:2018-04-16 14:33:22

标签: javascript node.js regex

我的字符串就像'facebook.com somenickname google.com example.com'。我的意思是有一个字符串可以包含多个网址和我的域名 - example.com。我想从该字符串中删除除“example.com”之外的所有URL,因此输出将类似于“somenickname example.com”

我尝试使用以下正则表达式,但不知道如何排除我的域名。

string.replace(/(https?:\/\/)?(www.)?[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9]\.[a-zA-Z]{2,}\/?/i, '').trim()

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

您可以为此任务使用带有字边界的否定前瞻。



var re = /\b(?!example\.com)(https?:\/\/)?(www.)?[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9]\.[a-zA-Z]{2,}\/?\b/g;
var str = 'facebook.com somenickname google.com example.com';
console.log(str.replace(re, '')); // replace matches
console.log(str.replace(re, '').replace(/\s+/g, ' ')); // also replace space chars




  • 否定前瞻(?!example\.com)。断言下面的正则表达式不匹配
    • example字面匹配字符example(区分大小写)
    • \.字面匹配字符.(区分大小写)
    • com字面匹配字符com(区分大小写)