2 回答

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超21個(gè)贊
使用該url
包:
u, _ := url.Parse("SOME_URL_HERE")
u.Fragment = ""
return u.String()

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超1個(gè)贊
Luke Joshua Park 的答案的改進(jìn)是解析相對于源頁面 URL 的 URL。這會(huì)根據(jù)頁面上可能的相對 URL(未指定方案、未指定主機(jī)、相對路徑)創(chuàng)建絕對 URL。另一個(gè)改進(jìn)是檢查和處理錯(cuò)誤。
func clean(pageURL, linkURL string) (string, error) {
p, err := url.Parse(pageURL)
if err != nil {
return "", err
}
l, err := p.Parse(linkURL)
if err != nil {
return "", err
}
l.Fragment = "" // chop off the fragment
return l.String()
}
如果您對獲取絕對 URL 不感興趣,請砍掉 # 后面的所有內(nèi)容。這是有效的,因?yàn)?URL 中 # 的唯一有效使用是片段分隔符。
func clean(linkURL string) string {
i := strings.LastIndexByte(linkURL, '#')
if i < 0 {
return linkURL
}
return linkURL[:i]
}
- 2 回答
- 0 關(guān)注
- 145 瀏覽
添加回答
舉報(bào)