Question Comment vérifiez-vous une chaîne vide en JavaScript?


j'ai vu ça fil, mais je n'ai pas vu d'exemple spécifique JavaScript. Y a-t-il un simple string.Empty disponible en JavaScript, ou est-ce juste un cas de vérification pour ""?


2141
2017-09-30 17:17


origine


Réponses:


Si vous voulez juste vérifier s'il y a une valeur, vous pouvez le faire

if (strValue) {
    //do something
}

Si vous avez besoin de vérifier spécifiquement une chaîne vide sur null, je pense que la vérification contre "" est votre meilleur pari, en utilisant la === opérateur (pour que vous sachiez que c'est, en fait, une chaîne que vous comparez).

if (strValue === "") {
    //...
}

2740
2017-09-30 17:20



Pour vérifier si une chaîne est vide, nulle ou indéfinie, j'utilise:

function isEmpty(str) {
    return (!str || 0 === str.length);
}

Pour vérifier si une chaîne est vide, null ou indéfini, j'utilise:

function isBlank(str) {
    return (!str || /^\s*$/.test(str));
}

Pour vérifier si une chaîne est vide ou ne contient que des espaces blancs:

String.prototype.isEmpty = function() {
    return (this.length === 0 || !this.trim());
};

902
2017-07-16 01:45



Tout ce qui précède est bon mais ce sera encore mieux. utilisation !!(pas pas) opérateur.

if(!!str){
some code here;
}

ou utilisez un casting de type:

if(Boolean(str)){
    codes here;
}

Les deux font la même fonction, tapez cast la variable en booléen, où str est une variable.
Résultats false pour null,undefined,0,000,"",false.
Résultats true pour la chaîne "0" et les espaces "".


225
2018-03-30 13:34



Si vous devez vous assurer que la chaîne n'est pas juste un tas d'espaces vides (je suppose que c'est pour la validation de formulaire), vous devez faire un remplacement sur les espaces.

if(str.replace(/\s/g,"") == ""){
}

88
2017-09-30 23:08



La chose la plus proche que vous pouvez obtenir à str.Empty (avec la condition préalable que str est une chaîne) est:

if (!str.length) { ...

75
2017-09-30 19:17



J'utilise :

function empty(e) {
  switch (e) {
    case "":
    case 0:
    case "0":
    case null:
    case false:
    case typeof this == "undefined":
      return true;
    default:
      return false;
  }
}

empty(null) // true
empty(0) // true
empty(7) // false
empty("") // true
empty((function() {
    return ""
  })) // false

44
2017-07-09 18:52



var s; // undefined
var s = ""; // ""
s.length // 0

Il n'y a rien qui représente une chaîne vide en JavaScript. Faites un contrôle contre l'un ou l'autre length (si vous savez que la var sera toujours une chaîne) ou contre ""


23
2017-09-30 17:42



Essayer:

if (str && str.trim().length) {  
    //...
}

22
2018-01-09 02:54



Je ne m'inquiéterais pas trop sur le plus efficace méthode. Utilisez ce qui est le plus clair à votre intention. Pour moi c'est habituellement strVar == "".

EDIT: par commentaire de ConstantinSi strVar pouvait finir par contenir une valeur entière de 0, alors ce serait une de ces situations de clarification d'intention.


21
2017-09-30 17:20