Ответ 1
if (!a) {
// is emtpy
}
Чтобы игнорировать пустое пространство для строк:
if (!a.trim()) {
// is empty or whitespace
}
Если вам нужна устаревшая поддержка (IE8-) для trim()
, используйте $.trim
или polyfill.
Каков наилучший способ проверить пустую строку с jquery-out-of-the-box, т.е. без плагинов? Я попробовал этот.
Но он не работал, по крайней мере, из коробки. Было бы неплохо использовать что-то встроенное.
Я бы не хотел повторять
if (a == null || a=='')
всюду, если бы был доступен некоторый if (isempty(a))
.
if (!a) {
// is emtpy
}
Чтобы игнорировать пустое пространство для строк:
if (!a.trim()) {
// is empty or whitespace
}
Если вам нужна устаревшая поддержка (IE8-) для trim()
, используйте $.trim
или polyfill.
Ссылка, которую вы дали, похоже, пытается что-то другое, чем тест, который вы пытаетесь избежать повторять.
if (a == null || a=='')
проверяет, является ли строка пустой или нулевой. Статья, связанная с тестами, если строка целиком состоит из пробелов (или пуста).
Тестирование, которое вы описали, можно заменить на:
if (!a)
Потому что в javascript, пустой строке и null, оба вычисляются в false в булевом контексте.
Основываясь на ответе Дэвида Мне лично нравится сначала проверить данный объект, если это строка. В противном случае вызов .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
if(!my_string){
// stuff
}
и
if(my_string !== "")
если вы хотите принять значение null, но отклонить пустой
EDIT: woops, забыли ваше условие, если оно пустое
Попробуйте выполнить это в консоли браузера или в node.js repl.
var string = ' ';
string ? true : false;
//-> true
string = '';
string ? true : false;
//-> false
Следовательно, для теста будет достаточно простой ветвящейся конструкции.
if(string) {
// string is not empty
}
Поскольку вы также можете вводить числа, а также строки фиксированного типа, на самом деле ответ должен быть:
function isBlank(value) {
return $.trim(value);
}
Проверьте, является ли данные пустой строкой (и игнорирует любое пустое пространство) с помощью jQuery:
function isBlank( data ) {
return ( $.trim(data).length == 0 );
}
Между тем у нас может быть одна функция, которая проверяет все "пустые", такие как 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
Попробуйте это
if(a=='null' || a=='')
if((a.trim()=="")||(a=="")||(a==null))
{
//empty condition
}
else
{
//working condition
}