JavaScript提供了兩個方法,將字串轉換為全部大寫或全部小寫,從而可以將“hello”更改為“HELLO”,或者將“NOT”更改為“not”。你可能會問,為什麼?將字串中的字母轉換為相同的大小寫,這可以使得比較兩個字串變得更容易。例如,假設你創建了一個題程序,並且,一個問題是“Who was the first American to win the Tour De France?”你可能用類似下面的代碼來檢查參加答題者的答案:
var correctAnswer='Greg LeMond'; var response=prompt('Who was the first American to win the Tour De8 France?',''); if(response==correctAnswer){ //correct }else{ //incorrect }
答案是Greg LeMond,但是,如果參加答題的人輸入了Greg Lemond,結果會如何呢?條件看上去類似這樣:『Greg Lemond'=='Greg LeMond'。由於JavaScript是區分大小寫字母的,Lemond中的小寫字母'm'不會匹配LeMond中的'M',因此,參加答題者可能會得到答錯的結果。如果參加答題者按下了Caps鍵,並且輸入了GREG LEMOND,也會得到相同的結果。
要解決這個難題,我們可以將兩個字串都轉換為相同的大小寫,然後再比較它們:
if(response.toUpperCase()==correctAnswer.toUpperCase()){ //correct }else{ //incorrect }
在這個例子中,條件語句將參加答題者的答案和正確的答案都轉換為大寫字母,因此,'Greg Lemond'變成了'GREG LEMOND',並且'Greg LeMond'變成了'GREG LEMOND'。
要取得全部小寫的字串,像下面這樣使用toLowerCase()方法:
var answer='Greg LeMond'; alert(answer.toLowerCase());//'greg lemond'
注意,這些方法都沒有真正改變實際儲存在變數中的字串,它們只是以全部大寫或全部小寫的形式傳回了該字串。因此,在上面的例子中,即便提示出現以後,answer仍然包含'Greg LeMond'(它們返回某些其他的值)。
toLowerCase()和toUpperCase()是兩個經典的方法,借鑒自java.lang.String中的同名方法。而toLocaleLowerCase()和toLocaleUpper()方法則是針對特定地區的實作。對某些地區來說,針對地區的方法與通用方法得到的結果相同,但少數語言會為Unicode大小寫轉換應用特殊的規則,這時候就必須要使用針對地區的方法來保證實現正確的轉換。
以下是幾個例子:
var sv="hello world"; alert(sv.toLocaleUpperCase());//"HELLO WORLD" alert(sv.toUpperCase());//"HELLO WORLD" alert(sv.toLocaleLowerCase());//"hello world" alert(sv.toLowerCase());//“hello world”
以上程式碼用的toLocaleUpperCase()和toUpperCase()都回傳了“HELLO WORLD”,就像呼叫了toLocaleLowerCase()和toLowerCase()都回傳了「hello world」一樣。一般來說,在不知道自己的程式碼將在那種語言環境下運行的情況下,還是使用針對地區額的方法更穩妥一些。
以上所述就是本文的全部內容了,希望大家能夠喜歡。