【问题标题】:Regex for validate a website URL用于验证网站 URL 的正则表达式
【发布时间】:2016-03-03 07:49:25
【问题描述】:

以下正则表达式:

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

符合以下条件:

https://something.com, 
https://www.something.com, 
http://something.com, 
http://www.something.com

但以下内容不应该与当前正则表达式匹配:

https://www.something, http://www.something

还应该匹配当前正则表达式不匹配的以下内容:

something.com, www.something.com

而且它还匹配任何域,我想做的只是接受已知域(例如:.com、.net、.biz 等)。

如何改进上述正则表达式?

【问题讨论】:

  • ^(http|https|ftp|)\://|[a-zA-Z0-9\-\.]+\.[a-zA-Z](:[a- zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&%\$#\=~])*[^ \.\,)(\s]$
  • 但我猜 www.something 也会匹配
  • 不确定这是一个好的模式,我只会发表评论:https?:\/\/(?!www\.[^\s.]+\b(?!\.))[\w-]+(\.[\w-]+)+([\w.,@?^=%&:\/~+#-]*[\w@?^=%&\/~+#-])?。根据你的。排除在http 之后有www. 的网址,然后在单词边界之前没有点的部分不带点。
  • 嗨@WiktorStribiżew,不确定我是否可以这样说,但从您提到的以下链接中:regex101.com/r/mY6rC3/2 允许用于http://www.something. and https://www.something. ,但不允许用于@987654331 @ 而且,无论如何只允许用户输入已知域(例如:.com、.net、.biz、.org 等)。谢谢
  • 嗨@Khazratbek,我已经尝试过你的代码,但它对我来说效果不佳。

标签: javascript asp.net regex


【解决方案1】:

(:?(?:https?:\/\/)?(?:www\.)?)?[-a-z0-9]+\.(?:com|gov|org|net|edu|biz)

https://regex101.com/r/bH7eL5/2

【讨论】:

  • 非常感谢@siete.sh。它按预期工作,也是我想要的。谢谢。
  • 感谢这个正则表达式验证器。我将它与另一个结合使用以获得我想要的东西。最后一块拼图。谢谢你。@matsib.dev
猜你喜欢
  • 1970-01-01
  • 2017-07-25
  • 2014-09-15
  • 2011-06-17
  • 1970-01-01
  • 2023-03-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多