Вопрос: Как вы проверяете пустую строку в JavaScript?


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


2097


источник


Ответы:


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

if (strValue) {
    //do something
}

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

if (strValue === "") {
    //...
}

2693



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

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

Для проверки пустой строки, null или undefined, я использую:

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

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

String.prototype.isEmpty = function() {
    return (this.length === 0 || !this.trim());
};

883



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

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

или использовать тип литья:

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

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


218



If you need to make sure that the string is not just a bunch of empty spaces (I'm assuming this is for form validation) you need to do a replace on the spaces.

if(str.replace(/\s/g,"") == ""){
}

88



The closest thing you can get to str.Empty (with the precondition that str is a String) is:

if (!str.length) { ...

74



I use :

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

44



var s; // undefined
var s = ""; // ""
s.length // 0

There's nothing representing an empty string in JavaScript. Do a check against either length (if you know that the var will always be a string) or against ""


24



Try:

if (str && str.trim().length) {  
    //...
}

22



I would not worry too much about the most efficient method. Use what is most clear to your intention. For me that's usually strVar == "".

EDIT: per comment from Constantin, if strVar could some how end up containing an integer 0 value, then that would indeed be one of those intention-clarifying situations.


22