我试图找到一个用于 url 验证的简单正则表达式,但在正则表达式方面不是很好。
目前我有这样的正则表达式:(/^https?:\/\/\w/).test(url)
所以它允许验证网址http://localhost:8080
等。
我想要做的不是验证 url,如果它们最后有一些长的特殊字符,比如:http://dodo.......
或http://dododo&&&&&
你可以帮帮我吗?
我试图找到一个用于 url 验证的简单正则表达式,但在正则表达式方面不是很好。
目前我有这样的正则表达式:(/^https?:\/\/\w/).test(url)
所以它允许验证网址http://localhost:8080
等。
我想要做的不是验证 url,如果它们最后有一些长的特殊字符,比如:http://dodo.......
或http://dododo&&&&&
你可以帮帮我吗?
这个怎么样?
/^http:\/\/\w+(\.\w+)*(:[0-9]+)?\/?(\/[.\w]*)*$/
将匹配:http://domain.com:port/path
或只是http://domain
或http://domain:port
/^http:\/\/\w+(\.\w+)*(:[0-9]+)?\/?$/
匹配没有路径的 URL
正则表达式块的一些解释:
域: \w+(\.\w+)*
用点匹配文本:localhost
或www.yahoo.com
(只要路径或端口部分开始)
端口: (:[0-9]+)?
匹配或不匹配以分号开头的数字:(:8000
可能只有一个)
路径: \/?(\/[.\w]*)*
匹配任何带有斜线和点的字母:(/user/images/0001.jpg
直到行尾)
(路径是非常有趣的部分,现在我这样做是为了允许单独或相邻的点,即这样的表达式是可能的:/.
或/./
或/.../
等。如果你想在路径中像域部分一样有点 - 没有边框或相邻的点,然后使用正则\/?(\/\w+(.\w+)*)*
表达式,类似于域部分。)
* 更新 *
此外,如果您想-
在您的 URL(或任何其他)中包含(有效的)字符,您应该简单地扩展“URL 文本匹配”的字符类\w+
,即应该成为[\-\w]+
等等。
这取决于您需要正则表达式的复杂程度。一种简单的方法是只接受单词(和端口/域):
^https?:\/\/\w+(:[0-9]*)?(\.\w+)?$
请记住,您需要使用+
字符来匹配一个或多个字符。
当然,还有更好、更复杂的解决方案。
如果你想匹配,ABCD
那么你可以离开开始部分..
例如匹配http://localhost:8080
' 写吧
/(localhost).
如果你想匹配特定的东西,那么请关注你要搜索的词,而不是句子的开头和结尾。
正则表达式用于搜索术语,直到我们有一个严格的规则。:)
我希望这会做..
^https?:\/\/localhost:[0-9]{1,5}\/([-a-zA-Z0-9()@:%_\+.~#?&\/=]*)
^https?:\/\/(localhost:([0-9]+\.)+[a-zA-Z0-9]{1,6})?$
将匹配以下情况:
将不匹配以下情况: