Как проверить, является ли строка 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
}
→ Ссылка