如何检查变量是否为null或空字符串或JavaScript中的所有空格?

时间:2012-04-19 16:17:47

标签: javascript jquery

我需要检查一个变量是否为null或者是否所有空格或只是空格(“”)。

我有以下内容,但它不起作用:

var addr;
addr = "  ";

if (!addr) {
    // pull error 
}

如果我执行以下操作,则可以:

if (addr) {

}​

我需要的是像C#方法String.IsNullOrWhiteSpace(value)

12 个答案:

答案 0 :(得分:99)

非jQuery解决方案更接近于模仿IsNullOrWhiteSpace,但仅检测null,空或全空格:

function isEmptyOrSpaces(str){
    return str === null || str.match(/^ *$/) !== null;
}

...然后:

var addr = '  ';

if(isEmptyOrSpaces(addr)){
    // error 
}

*编辑* 请注意,op特别指出“我需要检查var是否为null或者是否有空格或者只是空白”。所以,虽然是的,“空格”包含的不仅仅是null,空格还是空白,我的答案是为了回答op的具体问题。这很重要,因为op可能不想捕获像标签这样的东西,例如。

答案 1 :(得分:16)

您可以使用if(addr && (addr = $.trim(addr)))

这样做的好处是可以从addr中删除任何外部空格,而不是在执行检查时忽略它。

参考:http://api.jquery.com/jQuery.trim/

答案 2 :(得分:12)

if (addr == null || addr.trim() === ''){
  //...
}

null比较也会抓住undefined。如果您希望false也通过,请使用!addr。对于addr.trim(),向后浏览器兼容性交换$.trim(addr)

答案 3 :(得分:5)

老问题,但我认为它应该是一个更简单的答案。

您可以轻松地做到:

var addr = "  ";

if (addr && addr.trim()) {

    console.log("I'm not null, nor undefined, nor empty string, nor string composed of whitespace only.");

}

答案 4 :(得分:3)

您可以创建自己的方法,相当于

String.IsNullOrWhiteSpace(value)

function IsNullOrWhiteSpace( value) {

    if (value== null) return true;

    return value.replace(/\s/g, '').length == 0;
}

答案 5 :(得分:2)

检查空格时,c#方法使用Unicode标准。空白区域包括空格,制表符,回车符和许多其他非打印字符代码。所以你最好使用:

function isNullOrWhiteSpace(str){
    return str == null || str.replace(/\s/g, '').length < 1;
}

答案 6 :(得分:2)

上述简化版:(从此处:https://stackoverflow.com/a/32800728/47226

function isNullOrWhitespace( input ) {
  return !input || !input.trim();
}

答案 7 :(得分:1)

isEmptyOrSpaces(str){
    return !str || str.trim() === '';
}

答案 8 :(得分:0)

尝试一下

/**
  * Checks the string if undefined, null, not typeof string, empty or space(s)
  * @param {any} str string to be evaluated
  * @returns {boolean} the evaluated result
*/
function isStringNullOrWhiteSpace(str) {
    return str === undefined || str === null
                             || typeof str !== 'string'
                             || str.match(/^ *$/) !== null;
}

您可以像这样使用它

isStringNullOrWhiteSpace('Your String');

答案 9 :(得分:0)

isEmptyOrSpaces(str){
    return str === null || str.trim().length>0;
}

答案 10 :(得分:0)

function isEmptyOrSpaces(str){
    return str === null || str.match(/^[\s\n\r]*$/) !== null;
}

答案 11 :(得分:0)

您可以尝试以下方法:

do {
   var op = prompt("please input operatot \n you most select one of * - / *  ")
} while (typeof op == "object" || op == ""); 
// execute block of code when click on cancle or ok whthout input