Как проверить, является ли строка URL в Golang?
Надо, чтобы условие работало не только с полностью валидными (https://ru.stackoverflow.com/), но и по типу stackoverflow.com
Ответы (3 шт):
Автор решения: dikey0ficial
→ Ссылка
Самый простой вариант, но длинный по записи:
if len(strings.Fields(strings.TrimSpace(gmsg)))==1 && strings.ContainsAny(gmsg, ".") {
//your code
}
Необходмо импортировать пакет "strings"
Автор решения: Alexander Semikashev
→ Ссылка
Пакет https://golang.org/pkg/net/url/
import "net/url"
u, err := url.ParseRequestURI("https://ru.stackoverflow.com/")
if err != nil {
panic(err)
}
Автор решения: Senior Pomidor
→ Ссылка
если вдруг важно, чтобы и все аттрибуты URL были, то я бы предложил такой вариант
func isUrl(str string) (bool, error) {
parsedUrl, err := url.Parse(str)
return err == nil && parsedUrl.Scheme != "" && parsedUrl.Host != "", err
}