检查字符串是空还是空的最简单方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了检查字符串是空还是空的最简单方法相关的知识,希望对你有一定的参考价值。
我有这个代码检查空字符串或空字符串。它正在测试中。
eitherStringEmpty= (email, password) ->
emailEmpty = not email? or email is ''
passwordEmpty = not password? or password is ''
eitherEmpty = emailEmpty || passwordEmpty
test1 = eitherStringEmpty "A", "B" # expect false
test2 = eitherStringEmpty "", "b" # expect true
test3 = eitherStringEmpty "", "" # expect true
alert "test1: #{test1} test2: #{test2} test3: #{test3}"
我想知道的是,如果有比not email? or email is ''
更好的方式。我可以通过一次调用在CoffeeScript中完成相同的C#string.IsNullOrEmpty(arg)
吗?我总是可以为它定义一个函数(就像我一样),但我想知道是否有一些我缺少的语言。
对:
passwordNotEmpty = not not password
或更短:
passwordNotEmpty = !!password
而不是接受的答案passwordNotEmpty = !!password
你可以使用
passwordNotEmpty = if password then true else false
它给出了相同的结果(仅在语法上有所不同)。
在第一列是一个值,在第二列是if value
的结果:
0 - false
5 - true
'string' - true
'' - false
[1, 2, 3] - true
[] - true
true - true
false - false
null - false
undefined - false
我很确定@thejh的答案足以检查空字符串但我认为我们经常需要检查“它是否存在?”然后我们需要检查'它是空的吗?包括字符串,数组和对象'
这是CoffeeScript执行此操作的缩短方式。
tmp? and !!tmp and !!Object.keys(tmp).length
如果我们保留此问题顺序,将通过此订单检查1.它是否存在? 2.不是空字符串? 3.不是空物?
所以即使在不存在的情况下,所有变量都没有任何问题。
它并不完全等价,但如果email?.length
非空并且具有非零email
属性,那么.length
将只是真实的。如果你not
这个值,结果应该按照你想要的字符串和数组。
如果email
是null
或没有.length
,那么email?.length
将评估为null
,这是假的。如果它确实有.length
那么这个值将评估它的长度,如果它是空的,它将是假的。
您的功能可以实现为:
eitherStringEmpty = (email, password) ->
not (email?.length and password?.length)
这是“真实性”派上用场的情况。您甚至不需要为此定义函数:
test1 = not (email and password)
它为什么有效?
'0' // true
'123abc' // true
'' // false
null // false
undefined // false
unless email? and email
console.log 'email is undefined, null or ""'
首先检查电子邮件是否未定义,并且使用存在运算符不为null,如果您知道它存在,则and email
部分仅在电子邮件字符串为空时才返回false。
您可以使用coffeescript或=操作
s = ''
s or= null
如果您需要检查内容是否为字符串,而不是null而不是数组,请使用简单的比较类型:
if typeof email isnt "string"
这是一个jsfiddle展示了一个非常简单的方法。
基本上你只是这样做是javascript:
var email="oranste";
var password="i";
if(!(email && password)){
alert("One or both not set");
}
else{
alert("Both set");
}
在coffeescript中:
email = "oranste"
password = "i"
unless email and password
alert "One or both not set"
else
alert "Both set"
希望这有助于某人:)
我认为问号是在事物存在时调用函数的最简单方法。
例如
car = {
tires: 4,
color: 'blue'
}
你想得到颜色,但只有汽车存在...
CoffeeScript的:
car?.color
转换为javascript:
if (car != null) {
car.color;
}
它被称为存在主义运算符http://coffeescript.org/documentation/docs/grammar.html#section-63
基于this answer关于检查变量是否具有truthy
值,您只需要一行:
result = !email or !password
你可以在这个online Coffeescript console上亲自尝试一下
以上是关于检查字符串是空还是空的最简单方法的主要内容,如果未能解决你的问题,请参考以下文章