雷博尔网址?函数并没有真正检测到 url?

发布于 2024-08-03 13:27:09 字数 145 浏览 2 评论 0原文

我想读取剪贴板,如果它是一个网址,可以做一些事情。问题是网址?不做这样的工作:

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

这是正常的吗?那我该如何进行我想要的检测呢?

I want to read the clipboard, if it's an url do some stuff. Problem is url? doesn't do the job as:

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

Is this normal ? How do I do the detection I want then ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

岁月静好 2024-08-10 13:27:09

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

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

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

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

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

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

to-url makes a string into a REBOL datatype of URL!

What you want is to detect if a string conforms to the rules for a URL. That is nor easy or fool proof as many strings can be URLs in the real world, eg:

If you want to capture the more common cases (eg those that start with http://, https:// etc), then consider using parse.

This script almost does the job:
link text

What it missing is some charset definitions (I think the code must have been hurriedly cut'n'pasted from somewhere else)....

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

...and an example of how to use it: Assuming you have saved it locally as uri.r:

url-parse: do %uri.r
parse "http://sss" parse-url/url
== true
parse "sss" parse-url/url
== false
小猫一只 2024-08-10 13:27:09

您可以使用:

url? load "any://string"`

url? attempt [load "any string"]

使用 REBOL 的 URL 定义。

You can use:

url? load "any://string"`

or

url? attempt [load "any string"]

To use REBOL's definition of a URL.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文