我得到了类似“ facebook.com somenickname google.com example.com”的字符串。我的意思是,有一个字符串可以包含多个URL和我的域-example.com。我想从该字符串中除去“ example.com”以外的所有网址,因此输出将类似于“ 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()


感谢帮助!

最佳答案

您可以使用带有单词边界的负前瞻来完成此任务。



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(区分大小写)

关于javascript - 从字符串中剥离除一个域以外的所有域,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49859892/

10-11 22:14
查看更多