如何检查Elixir中的字符串是否为空

时间:2015-12-03 10:12:50

标签: elixir phoenix-framework

我的意思是如果字符串为空或仅包含空格,则该字符串为空。 例如,""" ""\n"都是空白的。

在Rails中,我们有.blank?方法。

Elixir(或凤凰框架)中是否有类似内容?

5 个答案:

答案 0 :(得分:25)

String.trim/1似乎可以解决Elixir 1.3.0的问题。

strip仍然有效,但已被软推荐in the 1.3.0 release,并且未在http://elixir-lang.org/docs/stable/elixir/String.html#functions的文档中列出。

答案 1 :(得分:15)

String.strip/1会将您的3个示例转换为<style> .irow > div { height: 80px; min-height: 60px; } .irow div:nth-child(4n+1), .irow div:nth-child(4n+2) { background-color: #2b669a; } .irow div:nth-child(4n+3), .irow div:nth-child(4n+4) { background-color: #46b8da; } </style> <div class="irow"> <div class="col-md-8"> <img style="height:80px; vertical-align: middle; outline: solid 1px #34fffe" src="http://www.animaux.arroukatchee.fr/babouin/babouin.jpg"> Inès va morfler grave </div> <div class="col-md-4"> <a class="btn btn-default btn" href="#" role="button">Go »</a> </div> <div class="col-md-8"> <img style="height:80px; vertical-align: middle; outline: solid 1px #34fffe" src="http://www.animaux.arroukatchee.fr/babouin/babouin.jpg"> Inès que des mots&nbsp;! </div> <div class="col-md-4"> <a class="btn btn-default btn" href="#" role="button">Go »</a> </div> </div> ,您可以将其与之比较。

""

有一个问题https://github.com/elixir-lang/elixir/pull/2707

答案 2 :(得分:5)

我发布了一个小型库,可以针对任何数据类型正确执行此操作。它实现了与Rails&#39;相同的行为。在Elixir中blank?方法尽可能。

图书馆在这里:https://github.com/samphilipd/blankable

要安装,请在mix.exs中将依赖项列表添加为空白:

def deps do
  [{:blankable, "~> 0.0.1"}]
end

答案 3 :(得分:2)

为什么不使用模式匹配

iex> a = ""
""
iex> b = "b"
"b"
iex> ^b = "b"
"b"
iex> ^a = "your String"
** (MatchError) no match of right hand side value: ""
iex> ^a = ""
""

或更好地检查其字节大小

iex> if byte_size("") == 0 do true else false end
true
iex> if byte_size("a") == 0 do true else false end
false

答案 4 :(得分:0)

我今天也有同样的问题。我最终定义了这些功能:

defp is_blank?(nil), do: true
defp is_blank?([]), do: true
defp is_blank?(%{}), do: true
defp is_blank?(value) when is_binary(value), do: String.trim(value) == ""