18個(gè)JavaScript string方法整理總匯

1、indexOf()
var str = "123";console.log(str.indexOf("3") != -1 ); // true
indexOf() 方法可返回某個(gè)指定的字符串值在字符串中首次出現(xiàn)的位置。如果要檢索的字符串值沒有出現(xiàn),則該方法返回 -1。
lastIndexOf() 方法返回指定文本在字符串中最后一次出現(xiàn)的索引:
var str = "The full name of China is the People's Republic of China.";console.log(str.lastIndexOf("China"));//51,如果未找到,同indexOf一樣返回-1
2、length(長(zhǎng)度)
length 屬性返回字符串的長(zhǎng)度:
var txt = "webqdkf.com-web前端開發(fā)";var sln = txt.length;//15
3、search()
var str = "123";console.log(str.search("3") != -1 ); // true
search() 方法用于檢索字符串中指定的子字符串,或檢索與正則表達(dá)式相匹配的子字符串。如果沒有找到任何匹配的子串,則返回 -1。
你注意了嗎?indexOf() 與 search()是相等的。這兩種方法是不相等的。區(qū)別在于:
search() 方法無法設(shè)置第二個(gè)開始位置參數(shù)。
indexOf() 方法無法設(shè)置更強(qiáng)大的搜索值(正則表達(dá)式)。
4、slice()
slice() 提取字符串的某個(gè)部分并在新字符串中返回被提取的部分。該方法設(shè)置兩個(gè)參數(shù):起始索引(開始位置),終止索引(結(jié)束位置)。
這個(gè)例子裁剪字符串中位置 7 到位置 13 的片段:
var str = "Apple, Banana, Mango";var res = str.slice(7,13);//Banana
如果某個(gè)參數(shù)為負(fù),則從字符串的結(jié)尾開始計(jì)數(shù)。這個(gè)例子裁剪字符串中位置 -12 到位置 -6 的片段:
var str = "Apple, Banana, Mango";var res = str.slice(-13,-7);
如果省略第二個(gè)參數(shù),則該方法將裁剪字符串的剩余部分:
var res = str.slice(7);
或者從結(jié)尾計(jì)數(shù):
var res = str.slice(-13);
5、substring()
substring() 類似于 slice()。不同之處在于 substring() 無法接受負(fù)的索引。
var str = "Apple, Banana, Mango";var res = str.substring(7,13);//res 的結(jié)果是:Banana
如果省略第二個(gè)參數(shù),則該 substring() 將裁剪字符串的剩余部分。
6、substr()
substr() 類似于 slice()。不同之處在于第二個(gè)參數(shù)規(guī)定被提取部分的長(zhǎng)度。
var str = "Apple, Banana, Mango";var res = str.substr(7,6);//res 的結(jié)果是:Banana
如果省略第二個(gè)參數(shù),則該 substr() 將裁剪字符串的剩余部分。
var str = "Apple, Banana, Mango";var res = str.substr(7);//res 的結(jié)果是:Banana, Mango
如果首個(gè)參數(shù)為負(fù),則從字符串的結(jié)尾計(jì)算位置。
var str = "Apple, Banana, Mango";var res = str.substr(-5);//res 的結(jié)果是:Mango
第二個(gè)參數(shù)不能為負(fù),因?yàn)樗x的是長(zhǎng)度。
7、replace()
replace() 方法用另一個(gè)值替換在字符串中指定的值:
str = "Please visit Microsoft!";var n = str.replace("Microsoft", "fly63");
replace() 方法不會(huì)改變調(diào)用它的字符串。它返回的是新字符串。默認(rèn)地,replace() 只替換首個(gè)匹配:
str = "Please visit Microsoft and Microsoft!";var n = str.replace("Microsoft", "fly63");//'Please visit Microsoft and Microsoft!'
默認(rèn)地,replace() 對(duì)大小寫敏感,因此不對(duì)匹配 MICROSOFT。如需執(zhí)行大小寫不敏感的替換,請(qǐng)使用正則表達(dá)式 /i(大小寫不敏感):
str = "Please visit Microsoft!";var n = str.replace(/MICROSOFT/i, "fly63");
請(qǐng)注意正則表達(dá)式不帶引號(hào)。如需替換所有匹配,請(qǐng)使用正則表達(dá)式的 g 標(biāo)志(用于全局搜索)
8、toUpperCase()
通過 toUpperCase() 把字符串轉(zhuǎn)換為大寫:
var text1 = "Hello World!"; // 字符串var text2 = text1.toUpperCase(); // text2 是被轉(zhuǎn)換為大寫的 text1
9、toLowerCase()
通過 toLowerCase() 把字符串轉(zhuǎn)換為小寫:
var text1 = "Hello World!"; // 字符串var text2 = text1.toLowerCase(); // text2 是被轉(zhuǎn)換為小寫的 text1
10、concat()
concat() 連接兩個(gè)或多個(gè)字符串:
var text1 = "Hello";var text2 = "World";text3 = text1.concat(" ",text2);//Hello World
concat() 方法可用于代替加運(yùn)算符。下面兩行是等效的:
var text = "Hello" + " " + "World!";var text = "Hello".concat(" ","World!");
所有字符串方法都會(huì)返回新字符串。它們不會(huì)修改原始字符串。正式地說:字符串是不可變的:字符串不能更改,只能替換。
11、trim()
trim() 方法刪除字符串兩端的空白符:
var str = " Hello World! ";alert(str.trim());
警告:Internet Explorer 8 或更低版本不支持 trim() 方法。如需支持 IE 8,您可搭配正則表達(dá)式使用 replace() 方法代替:
var str = " Hello World! ";alert(str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''));
您還可以使用上面的 replace 方案把 trim 函數(shù)添加到 JavaScript String.prototype:
if (!String.prototype.trim) {String.prototype.trim = function () {return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');};var str = " Hello World! ";alert(str.trim());
12、charAt()
charAt() 方法返回字符串中指定下標(biāo)(位置)的字符串:
var str = "HELLO WORLD";str.charAt(0); // 返回 H
13、charCodeAt()
charCodeAt() 方法返回字符串中指定索引的字符 unicode 編碼:
var str = "HELLO WORLD";str.charCodeAt(0); // 返回 72
14、split()
可以通過 split() 將字符串轉(zhuǎn)換為數(shù)組:
var txt = "a,b,c,d,e"; // 字符串txt.split(","); // 用逗號(hào)分隔txt.split(" "); // 用空格分隔txt.split("|"); // 用豎線分隔
如果省略分隔符,被返回的數(shù)組將包含 index [0] 中的整個(gè)字符串。
如果分隔符是 "",被返回的數(shù)組將是間隔單個(gè)字符的數(shù)組:
var txt = "Hello"; // 字符串txt.split(""); // 分隔為字符
15、屬性訪問(Property Access)
ECMAScript 5 (2009) 允許對(duì)字符串的屬性訪問 [ ]:
var str = "HELLO WORLD";str[0]; // 返回 H
使用屬性訪問有點(diǎn)不太靠譜:
不適用 Internet Explorer 7 或更早的版本
它讓字符串看起來像是數(shù)組(其實(shí)并不是)
如果找不到字符,[ ] 返回 undefined,而 charAt() 返回空字符串。
它是只讀的。str[0] = "A" 不會(huì)產(chǎn)生錯(cuò)誤(但也不會(huì)工作?。?/span>
var str = "HELLO WORLD";str[0] = "A"; // 不產(chǎn)生錯(cuò)誤,但不會(huì)工作str[0]; // 返回 H
提示:如果您希望按照數(shù)組的方式處理字符串,可以先把它轉(zhuǎn)換為數(shù)組。
16、match()
var str = "123";var reg = RegExp(/3/);if(str.match(reg)){// 包含}
match() 方法可在字符串內(nèi)檢索指定的值,或找到一個(gè)或多個(gè)正則表達(dá)式的匹配。
17、test()
var str = "123";var reg = RegExp(/3/);console.log(reg.test(str)); // true
test() 方法用于檢索字符串中指定的值。返回 true 或 false。
18、exec( )
var str = "123";var reg = RegExp(/3/);if(reg.exec(str)){// 包含}
exec() 方法用于檢索字符串中的正則表達(dá)式的匹配。返回一個(gè)數(shù)組,其中存放匹配的結(jié)果。如果未找到匹配,則返回值為 null。
寫在最后
感謝您的閱讀,如果您覺得今天內(nèi)容對(duì)您有幫助,請(qǐng)關(guān)注我,點(diǎn)贊我,同時(shí),也別忘了與您的朋友一起來分享它。
學(xué)習(xí)更多技能
請(qǐng)點(diǎn)擊下方公眾號(hào)
![]()

