我的意思是如果字符串为空或仅包含空格,则该字符串为空。
例如,""
," "
和"\n"
都是空白的。
在Rails中,我们有.blank?
方法。
Elixir(或凤凰框架)中是否有类似内容?
答案 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 !
</div>
<div class="col-md-4">
<a class="btn btn-default btn" href="#" role="button">Go »</a>
</div>
</div>
,您可以将其与之比较。
""
答案 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) == ""