Regexp javascript - url与localhost匹配

时间:2013-09-09 11:04:14

标签: javascript regex

我试图找到一个简单正则表达式进行网址验证,但在复兴方面效果不是很好..

目前我有这样的正则表达式:(/^https?:\/\/\w/).test(url)

因此,它允许将网址验证为http://localhost:8080等。

我想要做的是来验证网址,如果他们最后有一些长特殊字符,例如:http://dodo.......http://dododo&&&&&

你能帮帮我吗?

5 个答案:

答案 0 :(得分:6)

这个怎么样?

/^http:\/\/\w+(\.\w+)*(:[0-9]+)?\/?(\/[.\w]*)*$/

将匹配:http://domain.com:port/path或仅http://domainhttp://domain:port

/^http:\/\/\w+(\.\w+)*(:[0-9]+)?\/?$/

匹配没有路径的网址

正则表达式块的一些解释:

域名 \w+(\.\w+)*将文字与点匹配:localhostwww.yahoo.com(可能与路径或<一样长em>端口部分开始)

端口: (:[0-9]+)?匹配或不匹配以分号开头的数字::8000(并且它可能只有一个)

路径: \/?(\/[.\w]*)*以匹配任何带有斜线和点的字母:/user/images/0001.jpg(直到行尾)

路径是非常有趣的部分,现在我这样做是为了允许单独或相邻的点,即这样的表达式是可能的:/././或{{1如果你想在路径中有点像部分 - 没有边框或相邻点,那么使用/.../ regexp,类似到部分。)

*更新*

此外,如果您希望在您的网址(或任何其他网址)中包含(有效)\/?(\/\w+(.\w+)*)*个字符,则只需展开字符类以获取“网址文字匹配” ,即-应该变为\w+,依此类推。

答案 1 :(得分:2)

如果您想匹配ABCD,那么您可以离开开始部分..

例如匹配http://localhost:8080

'只需写

/(localhost).

如果你想匹配特定的东西,那么请关注你想要搜索的词,而不是句子的开头和结尾。

正则表达式用于搜索术语,直到我们对其具有严格的规则。 :)

我希望这样做..

答案 2 :(得分:1)

这取决于你需要Regex的复杂程度。一种简单的方法就是接受单词(和端口/域):

^https?:\/\/\w+(:[0-9]*)?(\.\w+)?$

请记住,您需要使用+字符来匹配一个或更多字符。

当然,那里有better & more complicated solutions远。

答案 3 :(得分:0)

<div class='tick--validation'></div>

匹配:

  • https:// localhost:65535 / file-upload-svc / files / app?query = abc#next

不匹配:

  • https:// localhost:775535 / file-upload-svc / files / app?query = abc#next

解释

  • 它只能用于localhost
  • 它还会检查端口号的值,因为它应该小于65535,但是您可能需要添加其他逻辑

答案 4 :(得分:-1)

^https?:\/\/(localhost:([0-9]+\.)+[a-zA-Z0-9]{1,6})?$

将符合以下情况:

不符合以下情况: