我试图为url验证找到一个简单的正则表达式,但在regexing中不是很好..
目前我有这样的正则表达式: (/^https?:\/\/\w/).test(url)
所以它允许验证网址http://localhost:8080等.
我想做的不是验证网址,如果他们最后有一些长的特殊字符,如:http://dodo.......或http://dododo&&&&&
你可以帮帮我吗?
这个怎么样?
/^http:\/\/\w+(\.\w+)*(:[0-9]+)?\/?(\/[.\w]*)*$/
Run Code Online (Sandbox Code Playgroud)
将匹配:http://domain.com:port/path或只是http://domain或http://domain:port
/^http:\/\/\w+(\.\w+)*(:[0-9]+)?\/?$/
Run Code Online (Sandbox Code Playgroud)
匹配没有路径的URL
正则表达式块的一些解释:
域: \w+(\.\w+)*将文本与点匹配:localhost或www.yahoo.com(可以与路径或端口部分一样长)
端口: (:[0-9]+)?匹配或不匹配以分号开头的数字:( :8000并且它可能只有一个)
路径: \/?(\/[.\w]*)*匹配任何带有斜线和点的字母:( /user/images/0001.jpg直到行尾)
(路径是非常有趣的部分,现在我这样做是为了让孤独或相邻点,即这样的表达可能是可能的:/.或/./或/.../等.如果你想在点路径就像域部分-无边界或相邻点,然后使用\/?(\/\w+(.\w+)*)*regexp,类似于域部分.)
*更新*
此外,如果您希望-在您的URL(或任何其他)中包含(它是有效的)字符,您应该简单地扩展"URL文本匹配"的字符类,即\w+应该成为[\-\w]+等等.