我想尝试在javascript中执行等效于C#String.IsNullOrEmpty(string)
的字符串调用。假设有一个简单的电话,我在网上看了,但我找不到一个。
目前我正在使用if(string === "" || string === null)
语句来覆盖它,但我宁愿使用预定义的方法(我不断得到一些因某些原因而滑倒的实例)
什么是最接近的javascript(或jquery,如果有一个)调用是相等的?
答案 0 :(得分:181)
你是在思考。空字符串和空字符串都是JavaScript中的假值。
if(!theString) {
alert("the string is null or empty");
}
Falsey:
答案 1 :(得分:12)
如果出于某种原因,您只想测试null
和empty
,您可以这样做:
function isNullOrEmpty( s )
{
return ( s == null || s === "" );
}
注意:这也会在评论中提到未定义的@Raynos。
答案 2 :(得分:6)
if (!string) {
// is emtpy
}
What is the best way to test for an empty string with jquery-out-of-the-box?
答案 3 :(得分:5)
如果您知道string
不是数字,则可以使用:
if (!string) {
.
.
.
答案 4 :(得分:3)
你可以做到
if(!string)
{
//...
}
这将检查string
是否有未定义,空和空字符串。
答案 5 :(得分:1)
要清楚,if(!theString){//...}
其中theString是一个未声明的变量将抛出一个未定义的错误,而不是找到它。另一方面,如果您有if(!window.theString){//...}
或var theString; if(!theString){//...}
,它将按预期工作。如果不声明变量(而不是属性或者根本没有设置),则需要使用:if(typeof theString === 'undefined'){//...}
我的偏好是创建一个包装它的原型函数。
答案 6 :(得分:1)
由于标记为正确的答案包含一个小错误,因此我最好尝试提出一个解决方案。我有两个选项,一个采用字符串,另一个采用字符串或数字,因为我假设很多人在javascript中混合字符串和数字。
步骤: - 如果对象为null,则为null或空字符串。 - 如果类型不是字符串(或数字),则其字符串值为null或为空。注意:我们也可能在此处抛出异常,具体取决于首选项。 - 如果修剪后的字符串值的长度小于1,则为空或空。
var stringIsNullOrEmpty = function(theString)
{
return theString == null || typeof theString != "string" || theString.trim().length < 1;
}
var stringableIsNullOrEmpty = function(theString)
{
if(theString == null) return true;
var type = typeof theString;
if(type != "string" && type != "number") return true;
return theString.toString().trim().length < 1;
}
答案 7 :(得分:1)
你可以用逻辑说出来
假设你有一个变量名strVal,来检查是否为null或空
if (typeof (strVal) == 'string' && strVal.length > 0)
{
// is has a value and it is not null :)
}
else
{
//it is null or empty :(
}
答案 8 :(得分:1)
您可以创建一个可在许多地方重复使用的效用方法,例如:
function isNullOrEmpty(str){
var returnValue = false;
if ( !str
|| str == null
|| str === 'null'
|| str === ''
|| str === '{}'
|| str === 'undefined'
|| str.length === 0 ) {
returnValue = true;
}
return returnValue;
}