126 votes

Comment vérifier si une valeur n'est pas null et pas une chaîne vide dans JS

Existe-t-il un moyen de vérifier si une valeur n'est pas null et n'est pas une chaîne vide en Javascript? J'utilise le suivant:

 var data; //get its value from db 
if(data != null && data != '') {
   // do something
}
 

Mais je me demande s’il existe une autre meilleure solution. Merci.

224voto

Gershon Papi Points 1894

Si vous voulez vraiment confirmer qu'une variable n'est pas nulle et non pas une chaîne vide spécifiquement, vous écrivez:

if(data !== null && data !== '') {
   // do something
}

Remarquez que j'ai modifié ton code pour vérifier l'égalité de traitement (!==|===).

Si, toutefois, vous voulez juste faire en sorte, que le code sera exécuté uniquement pour les "raisonnable" valeurs", alors vous pouvez, comme d'autres l'ont déjà dit, écrire:

if (data) {
  // do something
}

Depuis, en javascript, de valeurs nulles, et les cordes à vide, est égal à false (i.e. null == false).

La différence entre ces 2 parties de code, c'est que, pour la première, chaque valeur qui n'est pas précisément la valeur null ou une chaîne vide, va entrer dans l' if. Mais, sur le second, tout vrai-ish valeur va entrer dans l' if: false, 0, null, undefined et des chaînes vides, ne le serait pas.

22voto

Anna Fohlmeister Points 307

Les deux null et une chaîne vide sont falsy valeurs en JS. Par conséquent,

if (data) { ... }

est tout à fait suffisant.

Une remarque sur le côté pour autant: je voudrais éviter d'avoir une variable dans mon code qui pourrait se manifester dans différents types. Si les données seront éventuellement une chaîne de caractères, alors je voudrais d'abord définir ma variable avec une chaîne vide, de sorte que vous pouvez le faire:

if (data !== '') { ... }

sans la valeur null (ou bizarres, des trucs comme data = "0") d'obtenir de la manière.

2voto

Bhagawat Points 62

Les valeurs nulles et vides peuvent être validées comme suit:

 <script>
function getName(){
    var myname = document.getElementById("Name").value;
    if(myname != '' && myname != null){
        alert("My name is "+myname);
    }else{
        alert("Please Enter Your Name");
    }       
}
 

1voto

beletebelay Points 11

essayez-le ----------

 function myFun(){
var inputVal=document.getElementById("inputId").value;
if(inputVal){
document.getElementById("result").innerHTML="<span style='color:green'>The value is "+inputVal+'</span>';
}
else{
document.getElementById("result").innerHTML="<span style='color:red'>Something error happen! the input May be empty.</span>";
}
} 
 <input type="text" id="inputId">
<input type="button" onclick="myFun()" value="View Result">
<h1 id="result"></h1> 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X