в JavaScript проверить, если значение null или пробелом или без пробела



мне нужно проверить, является ли var нулевым или имеет какие-либо пустые места или, если на то пошло, просто пустым ("")



у меня есть следующие, но не работает:



var addr;
addr = " ";

if (!addr) {
// pull error
}


Если я делаю следующее, он работает



if (addr) {

}​


мне нужно что-то вроде этого метода C#:



String.IsNullOrWhiteSpace(value)


Так что если он имеет значение null или имеет какие-либо пробелы или нет места, я могу поймать его

431   6  

6 ответов:

не-jQuery решение, которое более точно имитирует IsNullOrWhiteSpace, но для обнаружения null, пустых или все-пробелов только:

function isEmptyOrSpaces(str){
    return str === null || str.match(/^ *$/) !== null;
}

...затем:

var addr = '  ';

if(isEmptyOrSpaces(addr)){
    // error 
}

* EDIT* Обратите внимание, что op конкретно заявляет "мне нужно проверить, является ли var нулевым или имеет какие-либо пустые места или, если на то пошло, просто пустым". Поэтому, хотя да," пустое пространство " охватывает больше, чем null, пробелы или пробел мой ответ предназначен для ответа на конкретный вопрос op. Это важно, потому что op может не хотеть ловить такие вещи, как вкладки, например.

можно использовать if(addr && (addr = $.trim(addr)))

это имеет то преимущество, что фактически удаляет любые внешние пробелы из addr вместо того чтобы просто игнорируя его при проверке.

Ссылка:http://api.jquery.com/jQuery.trim/

if (addr == null || addr.trim() === ''){
  //...
}

A null сравнение также будет ловить undefined. Если вы хотите false чтобы пройти тоже, используйте !addr. Для обратной совместимости браузера своп addr.trim() на $.trim(addr).

Вы можете создать свой собственный метод эквивалентной

String.IsNullOrWhiteSpace(value)

function IsNullOrWhiteSpace( value) {

    if (value== null) return true;

    return value.replace(/\s/g, '').length == 0;
}

при проверке пробела метод c# использует стандарт Unicode. Пробел включает пробелы, вкладки, возврат каретки и многие другие непечатаемые коды символов. Так что вам лучше использовать:

function isNullOrWhiteSpace(str){
    return str == null || str.replace(/\s/g, '').length < 1;
}

упрощенная версия выше: (отсюда:https://stackoverflow.com/a/32800728/47226)

function isNullOrWhitespace( input ) {
  return !input || !input.trim();
}

Comments

    Ничего не найдено.