轉換字元串 你可以轉換一個數字,布爾值,或一個字元串的對象: 將字元串分割成多個子字元串 為了區分一個字元串轉換為一個子字元串數組,你可以使用的split()方法: 1 var myString = "coming,apart,at,the,commas"; 2 var substringArray ...
轉換字元串
你可以轉換一個數字,布爾值,或一個字元串的對象:
1 var myNumber = 24; // 24 2 var myString = myNumber.toString(); // "24"
var myNumber = 24; // 24 var myString = String(myNumber); // "24"
將字元串分割成多個子字元串
為了區分一個字元串轉換為一個子字元串數組,你可以使用的split()
方法:
1 var myString = "coming,apart,at,the,commas"; 2 var substringArray = myString.split(","); // ["coming", "apart", "at", "the", "commas"] 3 var arrayLimited = myString.split(",", 3); // ["coming", "apart", "at"]
最後一行的第二個參數限制了數組參數所指定的項目的數量。
獲取一個字元串的長度
要找出多少個字元長的字元串的length
屬性:
1 var myString = "You're quite a character."; 2 var stringLength = myString.length; // 25
在字元串中找到一個子串
這樣做的方法有兩種。
使用indexOf()
:
1 var stringOne = "Johnny Waldo Harrison Waldo"; 2 var wheresWaldo = stringOne.indexOf("Waldo"); // 7
indexOf()
方法從字元串的開頭開始搜索的子串(通過)第一個參數,並返回第一次出現子字元串的開始位置。
使用lastIndexOf()
:
1 var stringOne = "Johnny Waldo Harrison Waldo"; 2 var wheresWaldo = stringOne.lastIndexOf("Waldo"); // 22
lastIndexOf()
方法是完全一樣的,只不過它返回傳遞的子字元串中最後一次出現的起始位置。
在這兩種方法中,如果沒有找到子字元串,則返回值-1
,並允許一個可選的第二個參數表示您要開始搜索的字元在字元串中的位置
替換掉一個子串
要更換一個新的字元串的字元串的一部分或全部,你可以使用replace()
:
1 var slugger = "Josh Hamilton"; 2 var betterSlugger = slugger.replace("h Hamilton", "e Bautista"); 3 console.log(betterSlugger); // "Jose Bautista"
第一個參數是你要替換的子字元串,第二個參數是新的子串。這隻會替換匹配的子字元串的第一個實例。
要更換匹配的子字元串的所有實例,使用正則表達式的全局標誌:
1 var myString = "She sells automotive shells on the automotive shore"; 2 var newString = myString.replace(/automotive/g, "sea"); 3 console.log(newString); // "She sells sea shells on the sea shore"
第二個參數可以包括特殊的替換模式,或可以是一個函數。
在給定的位置,找到相應的字元
要查找的字元是在指定的位置,你可以使用charAt()方法
:
var myString = "Birds of a Feather"; var whatsAtSeven = myString.charAt(7); // "f"
往往是在JavaScript的情況下,引用該字元串中的第一個位置為“0”,而不是“1”。
或者,您也可以使用charCodeAt()
,它給你,而不是字元本身的字元代碼:
1 var myString = "Birds of a Feather"; 2 var whatsAtSeven = myString.charCodeAt(7); // "102" 3 var whatsAtEleven = myString.charCodeAt(11); // "70"
請註意,大寫字母“F”的位(11)的字元代碼與小寫字母“f”的位(7)從字元碼不同。
連接多個字元串
在大多數情況下,當您連接字元串時,你會使用加法運算符(+)。但你也可以選擇使用CONCAT()
方法:
1 var stringOne = "Knibb High football "; 2 var stringTwo = stringOne.concat("rules."); // "Knibb High football rules"
您還可以通過將多個字元串,將被一個個的追加起來(在它們出現的順序):

1 var stringOne = "Knibb "; 2 var stringTwo = "High "; 3 var stringThree = "football "; 4 var stringFour = "rules."; 5 var finalString = stringOne.concat(stringTwo, stringThree, stringFour); 6 console.log(finalString); // "Knibb high football rules."

提取字元串(組成新字元串)
有三種不同的方法來創建一個新的字元串值:
使用slice()方法
:
1 var stringOne = "abcdefghijklmnopqrstuvwxyz"; 2 var stringTwo = stringOne.slice(5, 10); // "fghij"
使用substring()方法
:
var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringTwo = stringOne.substring(5, 10); // "fghij"
對於這兩個slice()
和substring()方法
的第一個參數是你想要的開始的子串,第二個參數(這是可選的)後的字元串中的字元結束的字串。因此,在上面的例子中,參數“5,10”,是指,字元5到9,以創建一個新的字元串。
使用SUBSTR()
var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringTwo = stringOne.substr(5, 10); // "fghijklmno"
SUBSTR()
,第一個參數代表開始新的字元串的字元,第二個參數是可選的。但這個時候,第二個參數表示的字元的總數應包括的開始的字元“5”的位置。
一個字元串轉換為大寫或小寫
有四種方法做大小寫轉換。有兩個字元串轉換為全部大寫:
1 var stringOne = "Speak up, I can't hear you."; 2 var stringTwo = stringOne.toLocaleUpperCase(); // "SPEAK UP, I CAN'T HEAR YOU" 3 var stringThree = stringOne.toUpperCase(); // "SPEAK UP, I CAN'T HEAR YOU"
將字元串轉換為小寫:
1 var stringOne = "YOU DON'T HAVE TO YELL"; 2 var stringTwo = stringOne.toLocaleLowerCase(); // "you don't have to yell" 3 var stringThree = stringOne.toLowerCase(); // "you don't have to yell"
模式匹配
在一個字元串匹配的模式,可以使用兩種方法,其基本的工作方式相同。
一個字元串match()方法被調用,並通過正則表達式:

1 var myString = "How much wood could a wood chuck chuck"; 2 var myPattern = /.ood/; 3 var myResult = myString.match(myPattern); // ["wood"] 4 var patternLocation = myResult.index; // 9 5 var originalString = myResult.input // "How much wood could a wood chuck chuck"

exec()
方法被調用的一個正則表達式
對象,並通過字元串:

var myString = "How much wood could a wood chuck chuck"; var myPattern = /.huck/; var myResult = myPattern.exec(myString); // ["chuck"] var patternLocation = myResult.index; // 27 var originalString = myResult.input // "How much wood could a wood chuck chuck"

對於這兩種方法,只在第一個匹配發生被返回。如果沒有找到匹配,將返回空值
。
也可以使用search()方法,它接受一個正則表達式作為唯一的參數,並返回模式第一次出現的位置:
1 var myString = "Assume"; 2 var patternLocation = myString.search(/ume/); // 3
如果沒有找到匹配,則該方法返回“-1”。
比較兩個字元串的排序順序
您可以比較兩個字元串,看看哪一個字母先靠前使用localeCompare
,,有三個可能的返回值:

1 var myString = "chicken"; 2 var myStringTwo = "egg"; 3 var whichCameFirst = myString.localeCompare(myStringTwo); // -1 (except Chrome, which returns -2) 4 whichCameFirst = myString.localeCompare("chicken"); // 0 5 whichCameFirst = myString.localeCompare("apple"); // 1 (Chrome returns 2)
stringObject.localeCompare(target)//公式

如上圖所示,如果 stringObject 小於 target,則 localeCompare() 返回小於 0 的數。如果 stringObject 大於 target,則該方法返回大於 0 的數。如果兩個字元串相等,或根據本地排序規則沒有區別,該方法返回 0。
由於瀏覽器可以返回任何負數或正數之前和之後的結果最好使用
,而不是if ( result < 0 )
if ( result === -1 ),後者將無法在Chrome瀏覽器中運行。