Pour vérifier si une variable est fausse ou si elle a un attribut length égal à zéro (ce qui pour une chaîne de caractères signifie qu'elle est vide), j'utilise :
function isEmpty(str) {
return (!str || str.length === 0 );
}
(Notez que les chaînes de caractères ne sont pas les seules variables avec un attribut <code>length</code>, les tableaux en ont aussi, par exemple.)
Alternativement, vous pouvez utiliser le chaînage facultatif (pas si) récent et les fonctions fléchées pour simplifier :
const isEmpty = (str) => (!str?.length);
Cela vérifiera la longueur, renvoyant undefined
en cas de valeur nulle, sans générer d'erreur. Dans le cas d'une valeur vide, zéro est falsy et le résultat est toujours valable.
Pour vérifier si une variable est fausse ou si la chaîne de caractères contient seulement des espaces vides ou est vide, j'utilise :
function isBlank(str) {
return (!str || /^\s*$/.test(str));
}
Si vous le souhaitez, vous pouvez monkey-patcher le prototype String
de cette manière :
String.prototype.isEmpty = function() {
// Cela ne fonctionne pas de la même manière que la fonction isEmpty utilisée
// dans le premier exemple, elle renverra vrai pour les chaînes contenant uniquement des espaces vides
return (this.length === 0 || !this.trim());
};
console.log("example".isEmpty());
Remarquez que le monkey-patching des types intégrés est controversé, car cela peut casser le code qui dépend de la structure existante des types intégrés, pour n'importe quelle raison.
4 votes
Juste pour info, je pense que les API les plus utiles pour la classe String se trouvent sur Mozilla et javascript kit. [elated.com](elated.com/articles/working-with-strings ) propose un tutoriel sur toutes les propriétés et méthodes de String,... Veuillez noter : le lien Mozilla a été mis à jour sur developer.mozilla.org/en/JavaScript/Reference/Global_Objects/…
0 votes
Vérifiez celui-ci : stackoverflow.com/a/36491147/7026966
1 votes
Il serait très utile si l'exigence était clairement spécifiée. Pour quelles valeurs isEmpty devrait-il retourner vrai? Vérifier pour "" suppose que cela devrait uniquement retourner vrai si la valeur est de type chaîne et de longueur 0. De nombreuses réponses ici supposent qu'il devrait également retourner vrai pour certaines ou toutes les valeurs "fausses".
0 votes
Str.length > -1
0 votes
Je suis complètement d'accord avec @RobG, cette question est mal définie. Pourquoi diable considéreriez-vous
null
ouundefined
comme vide ? Une chaîne vide est une chaîne vide, ce n'est pasnull
ouundefined
.0 votes
De plus, une chaîne vide ne peut pas contenir d'espaces, comme le supposent beaucoup de réponses !
0 votes
@Le lien de @GeneT est cassé, voici donc un lien mis à jour vers la référence de Mozilla : developer.mozilla.org/fr/docs/Web/JavaScript/Reference/…