Каков наилучший способ проверить пустую строку с помощью jquery-out-of-the-box? - PullRequest
212 голосов
/ 28 ноября 2009

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

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

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

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

везде, если будет доступно if (isempty(a)).

Ответы [ 10 ]

516 голосов
/ 28 ноября 2009
if (!a) {
  // is emtpy
}

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

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

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

26 голосов
/ 28 ноября 2009

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

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

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

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

if (!a)

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

22 голосов
/ 12 ноября 2015

На основании ответа Дэвида Лично мне нравится сначала проверять данный объект, если это вообще строка. В противном случае вызов .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 голосов
/ 16 сентября 2015

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

function isBlank( data ) {
    return ( $.trim(data).length == 0 );
}
3 голосов
/ 20 мая 2017

Между тем у нас может быть одна функция, которая проверяет все «пустые места», например 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
3 голосов
/ 28 ноября 2009
if(!my_string){ 
// stuff 
}

и

if(my_string !== "")

если вы хотите принять ноль, но отклонить пустое

РЕДАКТИРОВАТЬ: woops, забыл ваше состояние, если оно пусто

2 голосов
/ 20 июня 2014

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

function isBlank(value) {
  return $.trim(value);
}
2 голосов
/ 13 сентября 2012

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

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

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

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

if(string) {
    // string is not empty
}
0 голосов
/ 16 мая 2017
if((a.trim()=="")||(a=="")||(a==null))
{
    //empty condition
}
else
{
    //working condition
}
0 голосов
/ 27 августа 2015

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

if(a=='null' || a=='')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...