Je dois vérifier si une variable est nulle, contient tous les espaces vides ou est simplement vide ("").
J'ai les éléments suivants, mais cela ne fonctionne pas:
var addr;
addr = " ";
if (!addr) {
// pull error
}
Si je fais ce qui suit, ça marche:
if (addr) {
}
Ce dont j'ai besoin, c'est quelque chose comme la méthode C # String.IsNullOrWhiteSpace(value)
.
Une solution non-jQuery qui imite plus étroitement IsNullOrWhiteSpace
, mais pour détecter les espaces nuls, vides ou tous les espaces uniquement:
function isEmptyOrSpaces(str){
return str === null || str.match(/^ *$/) !== null;
}
...puis:
var addr = ' ';
if(isEmptyOrSpaces(addr)){
// error
}
* EDIT * Veuillez noter que op indique spécifiquement "Il faut que je vérifie si un var est nul ou s'il y a des espaces vides ou simplement vide". Donc, bien que oui, les "espaces" englobent plus que null, espaces ou espaces, ma réponse est destinée à répondre à la question spécifique de op. Ceci est important car op ne veut PAS attraper des choses comme des tabulations, par exemple.
Vous pouvez utiliser if(addr && (addr = $.trim(addr)))
Cela présente l'avantage de supprimer tous les espaces extérieurs de addr
au lieu de les ignorer lors de la vérification.
Référence: http://api.jquery.com/jQuery.trim/
if (addr == null || addr.trim() === ''){
//...
}
Une comparaison null
saisira également undefined
. Si vous voulez que false
réussisse aussi, utilisez !addr
. Pour la compatibilité ascendante du navigateur, échangez addr.trim()
pour $.trim(addr)
.
Vous pouvez créer votre propre méthode. Equivalent à
String.IsNullOrWhiteSpace(value)
function IsNullOrWhiteSpace( value) {
if (value== null) return true;
return value.replace(/\s/g, '').length == 0;
}
Lors de la recherche d'espaces, la méthode c # utilise le standard Unicode. Les espaces blancs incluent les espaces, les tabulations, les retours à la ligne et de nombreux autres codes de caractères non imprimables. Donc, il vaut mieux utiliser:
function isNullOrWhiteSpace(str){
return str == null || str.replace(/\s/g, '').length < 1;
}
Version simplifiée de ce qui précède: (à partir d'ici: https://stackoverflow.com/a/32800728/47226 )
function isNullOrWhitespace( input ) {
return !input || !input.trim();
}
isEmptyOrSpaces(str){
return str === null || str.trim().length>0;
}
isEmptyOrSpaces(str){
return !str || str.trim() === '';
}
Essayez ceci
/**
* 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;
}
Vous pouvez l'utiliser comme ça
isStringNullOrWhiteSpace('Your String');
function isEmptyOrSpaces(str){
return str === null || str.match(/^[\s\n\r]*$/) !== null;
}