Regexp javascript - url与localhost匹配

Kos*_*ika 3 javascript regex

我试图为url验证找到一个简单的正则表达式,但在regexing中不是很好..

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

所以它允许验证网址http://localhost:8080等.

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

你可以帮帮我吗?

roo*_*ook 7

这个怎么样?

/^http:\/\/\w+(\.\w+)*(:[0-9]+)?\/?(\/[.\w]*)*$/
Run Code Online (Sandbox Code Playgroud)

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

/^http:\/\/\w+(\.\w+)*(:[0-9]+)?\/?$/
Run Code Online (Sandbox Code Playgroud)

匹配没有路径的URL

 

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

域: \w+(\.\w+)*将文本与点匹配:localhostwww.yahoo.com(可以与路径端口部分一样长)

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

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

(路径是非常有趣的部分,现在我这样做是为了让孤独或相邻点,即这样的表达可能是可能的:/././/.../等.如果你想在点路径就像部分-无边界或相邻点,然后使用\/?(\/\w+(.\w+)*)*regexp,类似于部分.)

*更新*

此外,如果您希望-在您的URL(或任何其他)中包含(它是有效的)字符,您应该简单地扩展"URL文本匹配"的字符类,即\w+应该成为[\-\w]+等等.