javascript - 正则表达式匹配域名

标签 javascript regex match

我需要将域名与字符串相匹配。具有三种不同的模式。

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 匹配。

但是我需要匹配三种类型。

  1. http://www.some.com
  2. www.some.com
  3. some.com

帮我找到结果。我不太擅长正则表达式。我从堆栈溢出中得到了这个正则表达式模式。但不满足三个条件。

最佳答案

使用

(?:(http|ftp|https):\/\/)?[\w-]+(\.[\w-]+)+([\w.,@?^=%&;:\/~+#-]*[\w@?^=%&;\/~+#-])?

这只是使 http/ftp/... 可选(不捕获 ?:)

请参阅此处的示例:demo

或如图here

关于javascript - 正则表达式匹配域名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40883468/

相关文章:

rust - 同时匹配 Result::Err 或 Result::Ok 中的可选字段

javascript - 大纲:none in css?的反义词是什么

javascript - 提交时更改表单值

javascript - 以 null 作为参数的 Function.prototype.bind

python - 执行 a\G 锚定解析循环的 Python 方法是什么?

excel - 使用 Excel VBA 从不同工作簿引用索引/匹配公式中的文件路径变量

javascript - 在 html 上快速加载许多图像

php - 用于检测无效 UTF-8 字符串的正则表达式

python正则表达式在字符的最后两次出现之间保留文本

r - R 中 match 和 lapply 的组合