精心收集的JavaScript字符串方法參考總結


當我剛開始編寫JavaScript時候,遇到一些要處理的問題時我發現自己經常要谷歌搜索,或使用Mozilla的參考,以找到這些確切的語法和參 ​​數的定義與字符串操作的方法。好像高手都是這樣過來的,
幾年編程下來,我積累了大量的有用信息,所以今天的這篇文章就分享幾年以來總結的一些最常見和最有用的字符串相關的方法的例子和簡要說明。便於程序員用於快速參考。當然,最有經驗的開發人員對這些操作很熟悉,但我認為這是一個很好的方法幫助初學者理解這些函數,他可以幫助你使用簡單的語法。完成復雜的操作,

轉換字符串

你可以轉換一個數字,布爾值,或一個字符串的對象:

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瀏覽器中運行。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM