javascript正则表达式否定检测Url不包含给定的域名

时间:2016-05-11 15:00:44

标签: javascript regex-negation

我需要检查一些html文件并提取未提及2个网站的网址

经过多次测试后我得到了这个

/(http|https)?:?(\/\/)\w*\.*\-*[^(mysite.com)]\w*\.?\S*/igm

效果不错......但并不完美:

例如,可以看到它匹配的HERE on regexr.com

  

//结束

但不是

  

www.demo.com

虽然应该是计票,但在?之后添加(\/\/)会变成无用的“全部捕获”

如果url在开头和结尾都有",这种情况经常发生 不抓住开始"(正确)但抓住结束一个(错误)

最后它也不应该匹配theothermysite.net但是很好理解如何处理OR与否定: - (

可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

this

/((http|https):(\/\/)|www\.)\w*\.*\-*[^(mysite.com)(theothermysite.net)]\w*\.?[^\s\t\r\n\"]*/igm

我刚刚添加了一个"或www",将\S替换为其组件加\",并添加了另一个原子组,就像你已经使用mysite.com一样