我需要将域名与字符串相匹配。具有三种不同的模式。
var str=" with http match http://www.some.com and normal website type some.com and with www.some.com ";
var url = /(http|ftp|https):\/\/[\w-]+(\.[\w-]+)+([\w.,@?^=%&:\/~+#-]*[\w@?^=%&\/~+#-])?/g;
console.log(str.match(url))
以上代码片段仅与 http://www.some.com
匹配。
但是我需要匹配三种类型。
http://www.some.com
www.some.com
some.com
帮我找到结果。我不太擅长正则表达式。我从堆栈溢出中得到了这个正则表达式模式。但不满足三个条件。
最佳答案
使用
(?:(http|ftp|https):\/\/)?[\w-]+(\.[\w-]+)+([\w.,@?^=%&;:\/~+#-]*[\w@?^=%&;\/~+#-])?
这只是使 http/ftp/... 可选(不捕获 ?:
)
请参阅此处的示例:demo
或如图here
关于javascript - 正则表达式匹配域名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40883468/