Hen*_*Zhu 2 regex clojure clojurescript
如何在Clojure中返回给定字符串的有效URL.
(re-matches #"????" "www.example.com"))
(re-matches #"????" "http://example.com"))
(re-matches #"????" "http://example.org")) // returns "http://example.org"
(re-matches #"????" "htasdtp:/something")) // returns nil
Run Code Online (Sandbox Code Playgroud)
nta*_*lbs 10
验证URL并不简单.也许用regexp验证它太复杂了.幸运的是,有一个名为Apache Commons的库,其中包含UrlValidator.
由于Clojure可以使用Java库,因此您可以使用Apache Commons的UrlValidator来验证程序中的URL.
首先,在你的project.clj.中添加依赖.在依赖关系向量中添加以下行.
[commons-validator "1.4.1"]
Run Code Online (Sandbox Code Playgroud)
然后,您可以定义一个valid-url?返回布尔值的函数.
(import 'org.apache.commons.validator.UrlValidator)
(defn valid-url? [url-str]
(let [validator (UrlValidator.)]
(.isValid validator url-str)))
Run Code Online (Sandbox Code Playgroud)
现在,您可以使用此功能执行所需操作.或者,您可以修改上述函数,以在其参数为有效URL时返回URL字符串.