JavaScript中是否存在字符串.Empty,还是只是检查“”?
当前回答
这是一个错误的值。
第一种解决方案:
const str = "";
return str || "Hello"
第二种解决方案:
const str = "";
return (!!str) || "Hello"; // !!str is Boolean
第三种解决方案:
const str = "";
return (+str) || "Hello"; // !!str is Boolean
其他回答
我宁愿使用非空白测试而不是空白测试
function isNotBlank(str) {
return (str && /^\s*$/.test(str));
}
我通常使用以下内容:
if (str == "") {
//Do Something
}
else {
//Do Something Else
}
我不会太担心最有效的方法。使用最明确的意图。对我来说,这通常是strVar==“”。
根据Constantin的评论,如果strVar可以包含一个0整数值,那么这确实是一种意图明确的情况。
有很多答案,还有很多不同的可能性!
毫无疑问,快速简单的实现是赢家:if(!str.length){…}
然而,还有许多其他例子。我建议,最好的功能方法是:
函数为空(str){if(str类型==‘undefined‘||!str | | str.length==0 | | str==“”||!/[^\s]/.test(str)||/^\s*$/.test(str)|| str.replace(/\s/g,“”)==“)返回true;其他的return false;}
我知道有点过分了。
我没有注意到一个考虑到字符串中可能存在空字符的答案。例如,如果我们有一个空字符串:
var y = "\0"; // an empty string, but has a null character
(y === "") // false, testing against an empty string does not work
(y.length === 0) // false
(y) // true, this is also not expected
(y.match(/^[\s]*$/)) // false, again not wanted
要测试其空性,可以执行以下操作:
String.prototype.isNull = function(){
return Boolean(this.match(/^[\0]*$/));
}
...
"\0".isNull() // true
它在空字符串和空字符串上工作,所有字符串都可以访问它。此外,它还可以扩展为包含其他JavaScript空字符或空白字符(即非分隔空格、字节顺序标记、行/段落分隔符等)。