Quelle est la meilleure façon de tester une chaîne vide avec jquery-out-of-the-box, c'est-à-dire sans plugins? J'ai essayé ça .
Mais cela n'a pas fonctionné au moins hors de la boîte. Ce serait bien d'utiliser quelque chose qui est intégré.
Je ne voudrais pas répéter
if (a == null || a=='')
partout si certains if (isempty(a))
seraient disponibles.
javascript
jquery
Martin
la source
la source
Réponses:
Pour ignorer l'espace blanc pour les chaînes:
Si vous avez besoin d'un support hérité (IE8-) pour
trim()
, utilisez$.trim
ou un polyfill .la source
a
est "" ou toute autre valeur falsifiée (null, false, indéfini, 0, NaN).if (!$.trim(a))
if (!a.trim())
un peu dangereux? Et sia
est indéfini ou nul?Le lien que vous avez donné semble essayer quelque chose de différent du test que vous essayez d'éviter de répéter.
teste si la chaîne est une chaîne vide ou nulle. L'article que vous avez lié aux tests si la chaîne est entièrement composée d'espaces (ou est vide).
Le test que vous avez décrit peut être remplacé par:
Parce qu'en javascript, une chaîne vide et null, les deux sont évalués à false dans un contexte booléen.
la source
if(!a)
ne va-t-il pas échouer pour une chaîne composée de disons 4 espaces? ``0
comme une chaîne vide, mais pas"0"
. Je suppose que c'est ce que tu voulais dire? Il est concevable que cela soit utilisé dans une situation où vous savez quea
c'est soit une chaîne, soit null, mais oui. Quelque chose à savoir.Sur la base de la réponse de David, j'aime personnellement vérifier d'abord l'objet donné s'il s'agit d'une chaîne. Sinon, appeler
.trim()
un objet non existant lèverait une exception:Usage:
la source
Vérifiez si les données sont une chaîne vide (et ignorez tout espace blanc) avec jQuery:
la source
Pour vérifier tous les 'vides' comme null, undefined, '', '', {}, [] .
Cas d'utilisation et résultats.
la source
et
si vous voulez accepter null mais rejeter vide
EDIT: woops, j'ai oublié que votre condition est si elle est vide
la source
Essayez de l'exécuter dans votre console de navigateur ou dans une repl node.js.
Par conséquent, une simple construction de branchement suffira pour le test.
la source
Étant donné que vous pouvez également saisir des nombres ainsi que des chaînes de type fixe, la réponse devrait en fait être:
la source
return !!$.trim(value);
Essaye ça
la source
la source
null
alorsa.trim()
échouerait. C'est un mauvais ordre pour vérifier les choses. Et si vous modifiez la commande, votre réponse ne fournit rien, cela n'a pas été suggéré auparavant.