Подтвердить что ты не робот

Как проверить, является ли переменная нулевой или пустой строкой или все пробелы в JavaScript?

Мне нужно проверить, чтобы видеть, является ли переменная нулевой или имеет все пустые места или просто пусто ("").

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

var addr;
addr = "  ";

if (!addr) {
    // pull error 
}

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

if (addr) {

}​

Что мне нужно, это что-то вроде метода String.IsNullOrWhiteSpace(value).

4b9b3361

Ответ 1

Решение не в jQuery, которое более близко имитирует IsNullOrWhiteSpace, но позволяет обнаруживать только ноль, пустые или все пробелы:

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

... потом:

var addr = '  ';

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

* ОБНОВЛЕНИЕ * Обращаем ваше внимание, что в документе указано:

Мне нужно проверить, является ли переменная нулевой или имеет пустые места или, в этом отношении, просто пустая.

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

Ответ 2

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

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

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

Ответ 3

if (addr == null || addr.trim() === ''){
  //...
}
Сравнение

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

Ответ 4

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

String.IsNullOrWhiteSpace(value)

function IsNullOrWhiteSpace( value) {

    if (value== null) return true;

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

Ответ 5

isEmptyOrSpaces(str){
    return !str || str.trim() === '';
}

Ответ 6

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

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

Ответ 7

Упрощенная версия выше: (отсюда: fooobar.com/questions/150118/...)

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

Ответ 8

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

/**
  * Checks the string if undefined, null, not typeof string, empty or space(s)
  * @param {any} str string to be evaluated
  * @returns {boolean} the evaluated result
*/
function isStringNullOrWhiteSpace(str) {
    return str === undefined || str === null
                             || typeof str !== 'string'
                             || str.match(/^ *$/) !== null;
}

Вы можете использовать это так

isStringNullOrWhiteSpace('Your String');

Ответ 9

isEmptyOrSpaces(str){
    return str === null || str.trim().length>0;
}

Ответ 10

function isEmptyOrSpaces(str){
    return str === null || str.match(/^[\s\n\r]*$/) !== null;
}

Ответ 11

Вы можете попробовать это:

do {
   var op = prompt("please input operatot \n you most select one of * - / *  ")
} while (typeof op == "object" || op == ""); 
// execute block of code when click on cancle or ok whthout input