英文:
How to detect valid URLs in go?
问题
我想在将URL发送到REST API之前,在我的程序中检查有效的URL。我在Go语言中使用了regexp包。以下是我的正则表达式:
urlRegex := "^(https?://)[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]"
我使用regexp.MatchString()
方法将其与输入进行匹配。
match, _ := regexp.MatchString(urlRegex, args[0])
然而,这会给我一些无效的URL,例如http:////:9000
或http://a.
在Go语言中,是否有任何可以导入以进行更可靠的URL检查的包?
英文:
I wanted to try check for valid urls when i enter it in my program before I send requests to it using the rest API. I used the regexp package in go. The following is my regexp :
urlRegex := "^(https?://)[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]"
I match it to my input using the regexp.MatchString()
method.
match, _ := regexp.MatchString(urlRegex, args[0])
However this gives me a valid url for cases such as http:////:9000 or http://a.
Are there any packages in go that I can import for more robust url checking ?
答案1
得分: 2
你需要使用net/url.Parse()
函数。
import (
"net/url"
)
_, err := url.Parse(args[0])
这段代码会将args[0]
解析为URL对象。
英文:
You'll want to use net/url.Parse()
.
import (
"net/url"
)
_, err := url.Parse(args[0])
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论