Maison > Article > interface Web > Comment déterminer si deux chaînes sont égales dans les connaissances JavaScript_Basic
Convertissez d'abord toutes les valeurs saisies par l'utilisateur en majuscules (ou minuscules), puis comparez :
var name = document.form1.txtUserName.value.toLowerCase(); if(name == "urname") { // statements go here. }
JavaScript a deux opérateurs d'égalité. L'un est complètement rétrocompatible, le standard "==". Si les deux types d'opérande sont incohérents, il effectuera automatiquement une conversion de type sur l'opérande à un moment donné. Considérez l'instruction d'affectation suivante :
var strA = "i love you!"; var strB = new String("i love you!");
Ces deux variables contiennent la même séquence de caractères, mais ont des types de données différents. La première est une chaîne et la seconde est un objet. Lors de l'utilisation de l'opérateur "==", JavaScript tentera diverses évaluations pour détecter si les deux seront identiques. séquence égale dans certains cas. Ainsi, l’expression suivante est évaluée comme vraie : strA == strB.
Le deuxième opérateur est le "strict" "===", qui n'est pas aussi indulgent lors de l'évaluation et n'effectue pas de conversion de type. Ainsi, l'expression strA === strB est évaluée comme fausse, bien que les deux variables aient la même valeur.
Parfois, la logique du code vous oblige à déterminer si deux valeurs ne sont pas égales. Il existe ici deux options : "!=" et strict "!==". Leur relation est similaire à "==" et ". ===".
Débat :
"==" et "!=" feront de leur mieux pour trouver les valeurs correspondantes lors de l'évaluation, mais vous souhaiterez peut-être toujours effectuer une conversion de type explicite avant de comparer pour les "aider" à faire leur travail. Par exemple, si vous souhaitez déterminer si la valeur d'entrée (chaîne) d'un utilisateur est égale à un nombre, vous pouvez laisser "==" vous aider à terminer la conversion de type :
if(document.form1.txtAge.value == someNumericVar) { ... }
Vous pouvez également convertir à l'avance :
if(parseInt(document.form1.txtAge.value) == someNumericVar) { ... }
Si vous êtes plus habitué aux langages de programmation fortement typés (tels que C#, Java, etc.), alors vous pouvez continuer votre habitude (conversion de type) ici, ce qui améliorera également la lisibilité du programme.
Il y a une chose à laquelle vous devez faire attention, ce sont les paramètres régionaux de l’ordinateur. Si vous comparez des chaînes avec "0e23ddf2cd2db17fefda28fe66f19a88", alors JavaScript les compare en tant qu'Unicode, mais évidemment les internautes ne lisent pas le texte en tant qu'Unicode :) Par exemple en espagnol, selon le tri traditionnel, "ch " sera trié comme un caractère entre "c" et "d". localeCompare() fournit un moyen d'utiliser le classement de caractères des paramètres régionaux par défaut.
var strings; // 要排序的字符串数组,假设已经得到初始化 strings.sort(function(a,b) { return a.localeCompare(b) }); // 调用sort()方法进行排序