0

我想阅读剪贴板,如果它是一个 url 做一些事情。问题是网址?不做这项工作:

url? to-url "any string" will return true

这是正常的吗?那我该怎么做我想要的检测呢?

4

2 回答 2

2

您可以使用:

url? load "any://string"`

或者

url? attempt [load "any string"]

使用 REBOL 的 URL 定义。

于 2009-09-18T01:07:32.357 回答
2

to-url将字符串转换为 URL 的 REBOL 数据类型!

你想要的是检测一个字符串是否符合 URL 的规则。这并不容易或万无一失,因为现实世界中的许多字符串都可以是 URL,例如:

如果您想捕获更常见的情况(例如以http://https://等开头的情况),请考虑使用parse

这个脚本几乎可以完成这项工作链接文本

它缺少的是一些字符集定义(我认为代码一定是从其他地方匆匆剪切'n'粘贴的)......

alpha: charset [#"a" -  #"z" #"A" - #"Z"]
digits: charset [#"0" - #"9"]
alphadigit: union alpha digits

...以及如何使用它的示例:假设您已在本地将其保存为 uri.r:

url-parse: do %uri.r
parse "http://sss" parse-url/url
== true
parse "sss" parse-url/url
== false
于 2009-09-07T20:58:52.413 回答