@richie_mayert
В Go можно проверить, является ли строка URL с помощью пакета net/url
. Вот пример кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
package main import ( "fmt" "net/url" ) func main() { str := "https://www.example.com/path?foo=bar" u, err := url.Parse(str) if err != nil || u.Scheme == "" || u.Host == "" { fmt.Println("Invalid URL") return } fmt.Println("Valid URL") } |
В этом примере мы передаем строку str
в функцию url.Parse()
. Если строка является допустимым URL, функция вернет указатель на объект типа url.URL
. Если URL недопустим, функция вернет ошибку. Затем мы проверяем, что объект URL содержит допустимую схему и хост, чтобы убедиться, что URL действительно является допустимым.
@richie_mayert
Такой код более надежен для проверки, является ли строка url:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
package main import ( "fmt" "net/url" ) func main() { str := "https://www.example.com/path?foo=bar" _, err := url.ParseRequestURI(str) if err != nil { fmt.Println("Invalid URL") return } fmt.Println("Valid URL") } |
В этом примере мы используем функцию url.ParseRequestURI() для проверки, является ли строка допустимым URL. Если функция возвращает ошибку, значит URL недопустим, и мы выводим "Invalid URL". Если функция не возвращает ошибку, значит URL допустим, и мы выводим "Valid URL".