Uri.TryCreate 为任何字符串值返回 true?
Posted
技术标签:
【中文标题】Uri.TryCreate 为任何字符串值返回 true?【英文标题】:Uri.TryCreate returns true for any string value? 【发布时间】:2011-05-08 20:32:48 【问题描述】:我正在尝试使用 Uri.TryCreate 方法验证 Uri,当我使用无效字符串调用它时,该方法返回 true。任何想法为什么?我的代码如下:
private void button1_Click(object sender, EventArgs e)
Uri tempValue;
if (Uri.TryCreate("NotAURL", UriKind.RelativeOrAbsolute, out tempValue))
MessageBox.Show("?");
【问题讨论】:
【参考方案1】:这是一个有效的相对 URL。无效 URI 的示例是:
"http://example.com<>"
如果您只想允许绝对 URI,请使用 UriKind.Absolute
。
然后该示例将无法解析。
【讨论】:
有趣,我想我没有把它当成一个文件夹。我正在尝试验证网站 URL,所以我没有考虑文件夹路径。谢谢! 它可能是网站上的相对 URI。例如。如果您使用的是http://example.com/
,则该相对 URL 指的是http://example.com/NotAURL
。
是的,这就是我所做的——将其切换为 UriKind.Absolute。再次感谢。
空字符串或“?”根据此方法,也是有效的相对 uri。这有什么意义?
使用空字符串作为相对 URL 引用当前文档。例如,如果当前文档是http://example.org/foo/bar.html
,则空的相对 URL 指的是同一个文件。相对 URL ?
也指具有空查询字符串的同一文件;如果原始 URL 已经有一个查询字符串,则新的会替换旧的。例如,从http://example.org/foo/bar.html?foo=bar
开始,相对 URL ?baz=qux
产生http://example.org/foo/bar.html?baz=qux
。 (空的相对 URL 保留原始查询字符串。)以上是关于Uri.TryCreate 为任何字符串值返回 true?的主要内容,如果未能解决你的问题,请参考以下文章
NET问答: 如何检查一个 string 是否为有效的 url 格式?
Mysql中contactgroup_concatconcat_wsrepeat