Мне нужно проверить, имеет ли переменная значение NULL или все пустые места или просто пусто ("").
У меня есть следующее, но оно не работает:
var addr;
addr = " ";
if (!addr) {
// pull error
}
Если я сделаю следующее, это сработает:
if (addr) {
}
Мне нужно что-то вроде метода C # String.IsNullOrWhiteSpace(value)
.
javascript
jquery
Нейт Пет
источник
источник
has *any* empty spaces
? Или ты имеешь в видуis all empty spaces
?Ответы:
Решение, отличное от jQuery, которое более точно имитирует
IsNullOrWhiteSpace
, но обнаруживает только null, пустые или все пробелы:function isEmptyOrSpaces(str){ return str === null || str.match(/^ *$/) !== null; }
...тогда:
var addr = ' '; if(isEmptyOrSpaces(addr)){ // error }
* РЕДАКТИРОВАТЬ * Обратите внимание, что op конкретно указывает:
Итак, хотя да, «пробел» включает в себя больше нуля, пробелов или пробелов, мой ответ предназначен для ответа на конкретный вопрос op. Это важно, потому что op может НЕ захватывать такие вещи, как, например, вкладки.
источник
/^\s*$/
для перехвата.test
также быстрее, насколько я помню.if (addr == null || addr.trim() === ''){ //... }
null
Сравнение также будет пойматьundefined
. Если выfalse
тоже хотите пройти, используйте!addr
. Для задом браузера свопа совместимостиaddr.trim()
для$.trim(addr)
.источник
addr
равно нулю.==
и второй совпадают===
?Ты можешь использовать
if(addr && (addr = $.trim(addr)))
Это имеет то преимущество, что фактически удаляет любые внешние пробелы
addr
вместо того, чтобы просто игнорировать их при выполнении проверки.Ссылка: http://api.jquery.com/jQuery.trim/
источник
addr
он инициализирован, например, целым числом.isEmptyOrSpaces(str){ return !str || str.trim() === ''; }
источник
Вы можете создать свой собственный метод, эквивалентный
String.IsNullOrWhiteSpace(value)
function IsNullOrWhiteSpace( value) { if (value== null) return true; return value.replace(/\s/g, '').length == 0; }
источник
\s
совпадает не только с пробеламиПри проверке пробелов метод C # использует стандарт Unicode. Пробелы включают пробелы, табуляции, символы возврата каретки и многие другие непечатаемые коды символов. Итак, вам лучше использовать:
function isNullOrWhiteSpace(str){ return str == null || str.replace(/\s/g, '').length < 1; }
источник
Упрощенная версия вышеперечисленного: (отсюда: qaru.site/questions/435 / ... )
function isNullOrWhitespace( input ) { return !input || !input.trim(); }
источник
Старый вопрос, но я думаю, что он заслуживает более простого ответа.
Вы можете просто сделать:
var addr = " "; if (addr && addr.trim()) { console.log("I'm not null, nor undefined, nor empty string, nor string composed of whitespace only."); }
источник
addr && addr.trim()
? С синглом&
у меня не получилось, но сработало&&
.Попробуйте это
/** * 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');
источник
isEmptyOrSpaces(str){ return str === null || str.trim().length>0; }
источник
function isEmptyOrSpaces(str){ return str === null || str.match(/^[\s\n\r]*$/) !== null; }
источник
Вы можете попробовать это:
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
источник