首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >检查字符串是否为null或空的最简单方法

检查字符串是否为null或空的最简单方法
EN

Stack Overflow用户
提问于 2011-11-15 04:46:35
回答 11查看 63K关注 0票数 89

我有这段代码,用来检查空或null字符串。它在测试中起作用。

代码语言:javascript
复制
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)的操作?我总是可以为它定义一个函数(就像我曾经做过的那样),但我想知道这门语言中是否有我遗漏的东西。

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2011-11-15 04:48:39

是的:

代码语言:javascript
复制
passwordNotEmpty = not not password

或更短:

代码语言:javascript
复制
passwordNotEmpty = !!password
票数 120
EN

Stack Overflow用户

发布于 2011-11-15 04:49:56

它并不完全等价,但只有当email为非空并且具有非零的.length属性时,email?.length才为真。如果你对这个值执行not操作,那么对于字符串和数组,结果应该是你想要的那样。

如果emailnull或没有.length,那么email?.length将计算为null,这是False值。如果它有一个.length,那么这个值将计算为它的长度,如果它是空的,它将是False值。

您的函数可以实现为:

代码语言:javascript
复制
eitherStringEmpty = (email, password) ->
  not (email?.length and password?.length)
票数 37
EN

Stack Overflow用户

发布于 2011-11-15 07:37:55

这是一个“真实”派上用场的案例。你甚至不需要为此定义一个函数:

代码语言:javascript
复制
test1 = not (email and password)

为什么它会起作用?

代码语言:javascript
复制
'0'       // true
'123abc'  // true
''        // false
null      // false
undefined // false
票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8127883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档