Как проверить пустую / неопределенную / пустую строку в JavaScript? - PullRequest
2454 голосов
/ 30 сентября 2008

Я видел этот поток , но я не видел конкретного примера JavaScript. Есть ли простой string.Empty доступный в JavaScript, или это просто проверка ""?

Ответы [ 41 ]

3097 голосов
/ 30 сентября 2008

Если вы просто хотите проверить, есть ли какое-либо значение, вы можете сделать

if (strValue) {
    //do something
}

Если вам нужно специально проверять наличие пустой строки, а не нуля, я думаю, что проверка на "" - это ваша лучшая ставка с использованием оператора === (чтобы вы знали, что это так, фактически строка, с которой вы сравниваете).

if (strValue === "") {
    //...
}
1002 голосов
/ 16 июля 2010

Для проверки, является ли строка пустой, нулевой или неопределенной, я использую:

function isEmpty(str) {
    return (!str || 0 === str.length);
}

Для проверки, является ли строка пустой, нулевой или неопределенной, я использую:

function isBlank(str) {
    return (!str || /^\s*$/.test(str));
}

Для проверки, является ли строка пустой или содержит только пробел:

String.prototype.isEmpty = function() {
    return (this.length === 0 || !this.trim());
};
256 голосов
/ 30 марта 2011

Все вышеперечисленное хорошо, но это будет еще лучше. используйте оператор !! ( not not ).

if(!!str){
some code here;
}

или используйте тип литья:

if(Boolean(str)){
    codes here;
}

Оба выполняют одну и ту же функцию, введите приведение переменной к логическому значению, где str - это переменная.
Возвращает false для null,undefined,0,000,"",false.
Возвращает true для строки "0" и пробела "".

95 голосов
/ 01 октября 2008

Если вам нужно убедиться, что строка - это не просто набор пустых пробелов (я предполагаю, что это для проверки формы), вам нужно заменить их.

if(str.replace(/\s/g,"") == ""){
}
88 голосов
/ 30 сентября 2008

Ближайшая вещь, которую вы можете получить к str.Empty (с условием, что str является String):

if (!str.length) { ...
54 голосов
/ 09 июля 2010

Я использую:

function empty(e) {
  switch (e) {
    case "":
    case 0:
    case "0":
    case null:
    case false:
    case typeof this == "undefined":
      return true;
    default:
      return false;
  }
}

empty(null) // true
empty(0) // true
empty(7) // false
empty("") // true
empty((function() {
    return ""
  })) // false
31 голосов
/ 28 февраля 2014

Функция:

function is_empty(x)
{
   return ( 
        (typeof x == 'undefined')
                    ||
        (x == null) 
                    ||
        (x == false)  //same as: !x
                    ||
        (x.length == 0)
                    ||
        (x == "")
                    ||
        (x.replace(/\s/g,"") == "")
                    ||
        (!/[^\s]/.test(x))
                    ||
        (/^\s*$/.test(x))
  );
}

p.s. В Javascript не используйте разрыв строки после return;

31 голосов
/ 09 января 2013

Попробуйте:

if (str && str.trim().length) {  
    //...
}
28 голосов
/ 30 сентября 2008
var s; // undefined
var s = ""; // ""
s.length // 0

Нет ничего представляющего пустую строку в JavaScript. Выполните проверку либо length (если вы знаете, что переменная всегда будет строкой), либо ""

27 голосов
/ 17 августа 2017

Вы можете использовать Лодаш : _.isEmpty (значение).

Он охватывает множество случаев, таких как {}, '', null, undefined и т. Д.

Но он всегда возвращает true для Number типа Примитивные типы данных Javascript подобно _.isEmpty(10) или _.isEmpty(Number.MAX_VALUE), оба возвращают true.

...