Каков наилучший способ проверить пустую строку с jquery-out-of-the-box?

Каков наилучший способ проверить пустую строку с jquery-out-of-the-box, т.е. без плагинов? Я попробовал этот.

Но он не работал, по крайней мере, из коробки. Было бы неплохо использовать что-то встроенное.

Я бы не хотел повторять

if (a == null || a=='')

всюду, если бы был доступен некоторый if (isempty(a)).

Ответ 1

if (!a) {
  // is emtpy
}

Чтобы игнорировать пустое пространство для строк:

if (!a.trim()) {
    // is empty or whitespace
}

Если вам нужна устаревшая поддержка (IE8-) для trim(), используйте $.trim или polyfill.

Ответ 2

Ссылка, которую вы дали, похоже, пытается что-то другое, чем тест, который вы пытаетесь избежать повторять.

if (a == null || a=='')

проверяет, является ли строка пустой или нулевой. Статья, связанная с тестами, если строка целиком состоит из пробелов (или пуста).

Тестирование, которое вы описали, можно заменить на:

if (!a)

Потому что в javascript, пустой строке и null, оба вычисляются в false в булевом контексте.

Ответ 3

Основываясь на ответе Дэвида Мне лично нравится сначала проверить данный объект, если это строка. В противном случае вызов .trim() для не существующего объекта вызовет исключение:

function isEmpty(value) {
  return typeof value == 'string' && !value.trim() || typeof value == 'undefined' || value === null;
}

Использование:

isEmpty(undefined); // true
isEmpty(null); // true
isEmpty(''); // true
isEmpty('foo'); // false
isEmpty(1); // false
isEmpty(0); // false

Ответ 4

if(!my_string){ 
// stuff 
}

и

if(my_string !== "")

если вы хотите принять значение null, но отклонить пустой

EDIT: woops, забыли ваше условие, если оно пустое

Ответ 5

Попробуйте выполнить это в консоли браузера или в node.js repl.

var string = ' ';
string ? true : false;
//-> true

string = '';
string ? true : false;
//-> false

Следовательно, для теста будет достаточно простой ветвящейся конструкции.

if(string) {
    // string is not empty
}

Ответ 6

Поскольку вы также можете вводить числа, а также строки фиксированного типа, на самом деле ответ должен быть:

function isBlank(value) {
  return $.trim(value);
}

Ответ 7

Проверьте, является ли данные пустой строкой (и игнорирует любое пустое пространство) с помощью jQuery:

function isBlank( data ) {
    return ( $.trim(data).length == 0 );
}

Ответ 8

Между тем у нас может быть одна функция, которая проверяет все "пустые", такие как null, undefined, '', '', {}, []. Поэтому я просто написал это.

var isEmpty = function(data) {
    if(typeof(data) === 'object'){
        if(JSON.stringify(data) === '{}' || JSON.stringify(data) === '[]'){
            return true;
        }else if(!data){
            return true;
        }
        return false;
    }else if(typeof(data) === 'string'){
        if(!data.trim()){
            return true;
        }
        return false;
    }else if(typeof(data) === 'undefined'){
        return true;
    }else{
        return false;
    }
}

Использовать случаи и результаты.

console.log(isEmpty()); // true
console.log(isEmpty(null)); // true
console.log(isEmpty('')); // true
console.log(isEmpty('  ')); // true
console.log(isEmpty(undefined)); // true
console.log(isEmpty({})); // true
console.log(isEmpty([])); // true
console.log(isEmpty(0)); // false
console.log(isEmpty('Hey')); // false

Ответ 9

Попробуйте это

if(a=='null' || a=='')

Ответ 10

if((a.trim()=="")||(a=="")||(a==null))
{
    //empty condition
}
else
{
    //working condition
}