首頁 >web前端 >js教程 >JavaScript中判斷兩個字串是否相等的方法_基礎知識

JavaScript中判斷兩個字串是否相等的方法_基礎知識

WBOY
WBOY原創
2016-05-16 15:51:041754瀏覽

先將使用者的輸入值全部轉換為大寫(或小寫),然後再行比較:

   var name = document.form1.txtUserName.value.toLowerCase();


   if(name == "urname")


   {


     // statements go here.


   }



      JavaScript有兩種相等運算子。一種是完全向後相容的,標準的"==",如果兩個操作數類型不一致,它會在某些時候自動對操作數進行類型轉換,考慮下面的賦值語句:

   var strA = "i love you!";


   var strB = new String("i love you!");



這兩個變數含有相同的字元序列,但資料型態卻不同,前者為string,後者為object,在使用"=="運算子時,JavaScript會嘗試各種求值,以偵測兩者是否會在某種情況下相等。所以下面的表達式結果為true: strA == strB。


      第二種運算子是"嚴格"的"===",它在求值時不會這麼寬容,不會進行型別轉換。所以表達式strA === strB的值為false,雖然兩個變數持有的值相同。


      有時程式碼的邏輯要求你判斷兩個值是否不相等,這裡也有兩個選擇:"!="和嚴格的"!==",它們的關係就類似於"=="和"==="。


討論:


      "=="和"!="在求值時會盡可能地尋找值的匹配性,但你可能還是想在比較前進行顯式的類型轉換,以"幫助"它們完成工作。例如,如果想判斷一個使用者的輸入值(字串)是否等於一個數字,你可以讓"=="幫你完成型別轉換:

   if(document.form1.txtAge.value == someNumericVar) { ... }



      也可事先轉換:

   if(parseInt(document.form1.txtAge.value) == someNumericVar) { ... }



      如果你比較習慣於強型別的程式語言(例如C#,Java等),那麼這裡你可以延續你的習慣(型別轉換),這樣也會增強程式的可讀性。

 

      有一種狀況要注意,就是電腦的區域設定。如果用""來比較字串,那麼JavaScript把它們當作Unicode來比較,但顯然,人們在瀏覽網頁時不會把文本當作Unicode來閱讀:) 比如在西班牙語中,按照傳統的排序,"ch"將作為一個字元排在"c"和"d"之間。 localeCompare()提供了一種方式,可以幫助你使用預設區域設定下的字元排序規則。

  var strings; // 要排序的字符串数组,假设已经得到初始化


  strings.sort(function(a,b) { return a.localeCompare(b) }); // 调用sort()方法进行排序

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn