日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

NET问答: 如何检查一个 string 是否为有效的 url 格式?

發(fā)布時間:2023/12/4 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NET问答: 如何检查一个 string 是否为有效的 url 格式? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

咨詢區(qū)

  • kenchilada

我發(fā)現(xiàn) framework 里有兩個驗(yàn)證url有效性的方法:Uri.IsWellFormedUriString 和 Uri.TryCreate ,我試了一下這兩個方法在驗(yàn)證 文件路徑 時都返回 true。

請問我有什么有效的方法可以驗(yàn)證某個 string 是否為有效的 HTTP URL 格式呢?

回答區(qū)

  • Er?in Dedeo?lu

可以用 Uri.TryCreate 實(shí)現(xiàn),為此我寫了一個擴(kuò)展方法。

public?static?bool?CheckURLValid(this?string?source){Uri?uriResult;return?Uri.TryCreate(source,?UriKind.Absolute,?out?uriResult)?&&?uriResult.Scheme?==?Uri.UriSchemeHttp;}

然后像下面這樣使用。

string?url?=?"htts://adasd.xc."; if(url.CheckUrlValid()) {//valid?process }
  • 41686d6564

我發(fā)現(xiàn)大家的答案都有兩個問題。

  • 都允許 file://, ?ftp:// 開頭的 url。

  • 如果url沒有以 http:// , https:// ?開頭則不能通過,eg:(google.com)

  • 所以這并不完美,那如何解決呢?下面是我優(yōu)化后的方案。

    public?static?bool?ValidHttpURL(string?s,?out?Uri?resultURI) {if?(!Regex.IsMatch(s,?@"^https?:\/\/",?RegexOptions.IgnoreCase))s?=?"http://"?+?s;if?(Uri.TryCreate(s,?UriKind.Absolute,?out?resultURI))return?(resultURI.Scheme?==?Uri.UriSchemeHttp?||?resultURI.Scheme?==?Uri.UriSchemeHttps);return?false; }

    然后用下面的方式進(jìn)行測試。

    string[]?inputs?=?new[]?{"https://www.google.com","http://www.google.com","www.google.com","google.com","javascript:alert('Hack?me!')"}; foreach?(string?s?in?inputs) {Uri?uriResult;bool?result?=?ValidHttpURL(s,?out?uriResult);Console.WriteLine(result?+?"\t"?+?uriResult?.AbsoluteUri); }

    輸出結(jié)果。

    True????https://www.google.com/ True????http://www.google.com/ True????http://www.google.com/ True????http://google.com/ False

    點(diǎn)評區(qū)

    在用戶表單驗(yàn)證中,這種需求還是非常常見的, Uri.TryCreate 用來做服務(wù)器端驗(yàn)證是一個絕佳的方式。

    總結(jié)

    以上是生活随笔為你收集整理的NET问答: 如何检查一个 string 是否为有效的 url 格式?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。