Как проверить, является ли строка url в golang?

Пользователь

от richie_mayert , в категории: Golang , 2 года назад

Как проверить, является ли строка url в golang?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от nicola , 2 года назад

@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 действительно является допустимым.

Пользователь

от dan_farrell , год назад

@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".