Muszę sprawdzić, czy zmienna ma wartość null, czy ma wszystkie puste spacje lub jest po prostu pusta („”).
Mam następujące, ale nie działa:
var addr;
addr = " ";
if (!addr) {
// pull error
}
Jeśli wykonam następujące czynności, zadziała:
if (addr) {
}
To, czego potrzebuję, to coś w rodzaju metody C # String.IsNullOrWhiteSpace(value)
.
javascript
jquery
Nate Pet
źródło
źródło
has *any* empty spaces
? Czy masz na myśliis all empty spaces
?Odpowiedzi:
Rozwiązanie inne niż jQuery, które dokładniej naśladuje
IsNullOrWhiteSpace
, ale wykrywa tylko null, puste lub wszystkie spacje:function isEmptyOrSpaces(str){ return str === null || str.match(/^ *$/) !== null; }
...następnie:
var addr = ' '; if(isEmptyOrSpaces(addr)){ // error }
* EDYTUJ * Pamiętaj, że op konkretnie stwierdza:
Tak więc, chociaż tak, „białe miejsce” obejmuje więcej niż null, spacje lub puste miejsce, moja odpowiedź ma na celu udzielenie odpowiedzi na konkretne pytanie op. Jest to ważne, ponieważ na przykład op może NIE chcieć przechwytywać rzeczy takich jak tabulatory.
źródło
/^\s*$/
aby je również złapać.test
jest również szybszy, o czym pamiętam.if (addr == null || addr.trim() === ''){ //... }
null
Porównanie będzie również złapaćundefined
. Jeśli też chceszfalse
zdać, użyj!addr
. Aby uzyskać wsteczną zgodność przeglądarki, zamieńaddr.trim()
na$.trim(addr)
.źródło
addr
wynosi zero.==
i drugie pasują===
?Możesz użyć
if(addr && (addr = $.trim(addr)))
Ma to tę zaletę, że faktycznie usuwa wszelkie zewnętrzne spacje,
addr
zamiast po prostu ignorować je podczas sprawdzania.Źródła: http://api.jquery.com/jQuery.trim/
źródło
addr
zostanie zainicjowana np. Liczbą całkowitą.isEmptyOrSpaces(str){ return !str || str.trim() === ''; }
źródło
Możesz utworzyć własną metodę Equivalent to
String.IsNullOrWhiteSpace(value)
function IsNullOrWhiteSpace( value) { if (value== null) return true; return value.replace(/\s/g, '').length == 0; }
źródło
\s
pasuje do więcej niż tylko przestrzeniPodczas sprawdzania białych znaków metoda C # używa standardu Unicode. Białe znaki obejmują spacje, tabulatory, powrót karetki i wiele innych niedrukowalnych kodów znaków. Więc lepiej jest używać:
function isNullOrWhiteSpace(str){ return str == null || str.replace(/\s/g, '').length < 1; }
źródło
Uproszczona wersja powyższego: (stąd: https://stackoverflow.com/a/32800728/47226 )
function isNullOrWhitespace( input ) { return !input || !input.trim(); }
źródło
Stare pytanie, ale myślę, że zasługuje na prostszą odpowiedź.
Możesz po prostu zrobić:
var addr = " "; if (addr && addr.trim()) { console.log("I'm not null, nor undefined, nor empty string, nor string composed of whitespace only."); }
źródło
addr && addr.trim()
? Z jednym&
to nie zadziałało dla mnie, ale działa&&
.Wypróbuj to
/** * 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; }
Możesz tego używać w ten sposób
isStringNullOrWhiteSpace('Your String');
źródło
isEmptyOrSpaces(str){ return str === null || str.trim().length>0; }
źródło
function isEmptyOrSpaces(str){ return str === null || str.match(/^[\s\n\r]*$/) !== null; }
źródło
Możesz spróbować tego:
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
źródło