我想验证uris,如:
http://vk.com
http://semantic-ui.com/collections/menu.html
https://translate.yandex.ru/?text=poll&lang=en-ru
Run Code Online (Sandbox Code Playgroud)
并不是
www.vk.com
abdeeej
http://vk
Run Code Online (Sandbox Code Playgroud)
但还没有找到任何本机代码实现包。
我怎样才能做到这一点?
Dog*_*ert 12
根据规范,所有这些在技术上都是有效的 URL,因此为所有人URI.parse/1返回一个%URI{}结构,但如果您想拒绝 中没有 ascheme和点的域host,您可以执行以下操作:
valid? = fn url ->
uri = URI.parse(url)
uri.scheme != nil && uri.host =~ "."
end
Run Code Online (Sandbox Code Playgroud)
测试:
urls = [
"http://vk.com",
"http://semantic-ui.com/collections/menu.html",
"https://translate.yandex.ru/?text=poll&lang=en-ru",
"www.vk.com",
"abdeeej",
"http://vk"
]
urls |> Enum.map(valid?) |> IO.inspect
Run Code Online (Sandbox Code Playgroud)
输出:
[true, true, true, false, false, false]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2266 次 |
| 最近记录: |