【问题标题】:Javascript regular expression for URL validation [duplicate]URL验证的Javascript正则表达式[重复]
【发布时间】:2015-02-13 04:22:46
【问题描述】:

我希望正则表达式验证具有以下条件的 URL,

  1. 应该以 http 或 https 开头
  2. 它应该以有效域结尾。 例如:.com 或 .in 但在 .可以有任何字符串。特别是检查.是否存在,.后面是否有字符串。

有效网址:http://www.cnn.com

无效的网址:

htt://www.yahoo.com
http://www.yahoo.
http://www.yahoo

我已经编写了如下的正则表达式。

/^(http|https):\/\/[-a-zA-Z0-9+&@#/%?=~_|!:,;]+([\-\.]{1}[-a-zA-Z0-9+&@#/%?=~_|]+)*\.[a-zA-Z]{2,5}(:[0-9]{1,5})?(\/.*)?$/

它适用于大多数场景。

但是如果我输入http://www.yahoo 没有正确验证,但如果我输入http://www.google 则会引发验证错误。

谁能帮我解决这个问题?

【问题讨论】:

    标签: javascript regex validation


    【解决方案1】:

    试试这个:

    ^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$
    

    【讨论】:

    • 发现它很有用.....Thnx
    • 它对我不起作用
    【解决方案2】:

    你可以使用下面的reg exp来匹配url

    ^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$
    

    在这里查看

    https://www.regex101.com/r/jU7iT2/1

    【讨论】: