【问题标题】:Validate web url JavaScript to accept url entry google.com验证 web url JavaScript 以接受 url 条目 google.com
【发布时间】:2013-02-21 06:00:42
【问题描述】:

我有以下正则表达式

RegExp("((http|https)(:\/\/))?([a-zA-Z0-9]+[.]{1}){2}[a-zA-z0-9]+(\/{1}[a-zA-Z0-9]+)*\/?",
   "i");

工作正常,但显示以下 url 模式无效

例如:“google.com”

谢谢你的回答。

【问题讨论】:

  • @Chris -1。你仔细看正则表达式了吗? ((http|https)(://))? ... 表示可选
  • 你到底想匹配什么?也许我们可以找到另一个(更短更清晰的)正则表达式。
  • 我也想要 www 可选,但现在我得到了答案,我使用了这个 ^(https?://|www\\.)?[\.A-Za-z0-9\-]+ \\.[a-zA-Z]{2,4}

标签: javascript regex validation url web


【解决方案1】:

您的代码至少需要something.something.something,例如stuff.google.com。将{2} 换成+ 以允许二级域。

RegExp("((http|https)(://))?([a-zA-Z0-9]+[.]{1})+[a-zA-z0-9]+(/{1}[a-zA-Z0-9]+)*/?", "i");

我要补充一点,关于这个正则表达式还有几个其他的......奇怪之处(比如使用{1}[.])并且它不考虑一些有效的域(比如something-something.com)。此外,您可以在 JS 中使用正则表达式文字,例如 var regex = /just a regex/。所以我推荐一些阅读。

【讨论】:

  • 感谢您抽出宝贵时间回复。我这样做了 ^(https?://|www\\.)?[\.A-Za-z0-9\-]+\\.[a-zA-Z]{2,4} 它的工作原理是必需,但我希望它接受 url 前面的空格,以防用户错误地输入空格 b4 url​​。我知道它的 \s* 但我应该如何把它放在我提到的模式中?
  • 哦哦!它的 (^|[ ]) 谢谢你的时间。
  • 使用^ ?^ * 而不是(^|[ ]),这不太对。
猜你喜欢
  • 2011-03-24
  • 1970-01-01
  • 1970-01-01
  • 2011-11-28
  • 1970-01-01
  • 1970-01-01
  • 2012-03-31
  • 1970-01-01
  • 2019-07-24
相关资源
最近更新 更多