ホームページ > 記事 > ウェブフロントエンド > JavaScriptで2つの文字列が等しいかどうかを判断する方法_基礎知識
すべてのユーザー入力値を最初に大文字 (または小文字) に変換してから比較します:
var name = document.form1.txtUserName.value.toLowerCase(); if(name == "urname") { // statements go here. }
JavaScript には 2 つの等価演算子があります。 1 つは完全に下位互換性のある標準の「==」です。2 つのオペランドの型が一致しない場合、ある時点で自動的にオペランドの型変換が実行されます。
var strA = "i love you!"; var strB = new String("i love you!");
これら 2 つの変数には同じ文字列が含まれていますが、データ型が異なります。「==」演算子を使用すると、JavaScript は 2 つが同じかどうかを検出するためにさまざまな評価を試みます。場合によっては同じ順序になります。したがって、次の式は true と評価されます: strA == strB。
2 番目の演算子は「厳密」な「===」ですが、これは評価時にそれほど寛容ではなく、型変換を実行しません。したがって、両方の変数が同じ値を保持しているにもかかわらず、式 strA === strB は false と評価されます。
コードのロジックでは、2 つの値が等しくないかどうかを判断する必要がある場合があります。「!=」と「!==」の 2 つのオプションがあります。これらの関係は「==」と「」に似ています。 ===。
ディスカッション:
「==」と「!=」は、評価時に一致する値を見つけるために最善を尽くしますが、それらの仕事を「支援」するために、比較する前に明示的な型変換を実行することもできます。たとえば、ユーザーの入力値 (文字列) が数値に等しいかどうかを判断したい場合は、「==」を使用して型変換を完了できます:
if(document.form1.txtAge.value == someNumericVar) { ... }
事前に変換することもできます:
if(parseInt(document.form1.txtAge.value) == someNumericVar) { ... }
厳密に型指定されたプログラミング言語 (C#、Java など) に慣れている場合は、ここで習慣 (型変換) を続けることができ、これによりプログラムの可読性も向上します。
注意する必要があることが 1 つあります。それは、コンピューターの地域設定です。文字列を「e541b52b254dc5f8a220aae37694ce5c」で比較すると、JavaScript はそれらを Unicode として比較しますが、明らかに Web を閲覧している人はテキストを Unicode として読みません:) たとえば、スペイン語では、従来の並べ替えによれば、「ch」 " は "c" と "d" の間の文字としてソートされます。 localeCompare() は、デフォルトのロケールの文字照合を使用する方法を提供します。
var strings; // 要排序的字符串数组,假设已经得到初始化 strings.sort(function(a,b) { return a.localeCompare(b) }); // 调用sort()方法进行排序