0. 前言
在上一篇《數(shù)組中的常用方法)》中我總結(jié)了一些數(shù)組中的常用方法,字符串在開發(fā)中應(yīng)用也比較廣泛褐墅,所以置媳,我也把字符串的一些方法總結(jié)一下栓始。
1. 簡介
字符串或串(String)是由數(shù)字、字母赊窥、下劃線組成的一串字符爆惧。
2. 字符串中常用的方法
一、charAt
charAt(index)
功能:獲取對應(yīng)下標(biāo)的字符
參數(shù):下標(biāo)
返回值:獲取到的字符,沒有對應(yīng)的下標(biāo)返回空的字符串
var str1 = "senge is a good man";
var ret1 = str1.charAt(3);
var ret2 = str1.charAt(5);
var ret3 = str1.charAt(29);
console.log(ret1);//輸出 g
console.log(ret2);//輸出 什么都沒有锨能,因為下標(biāo)是5的是空格
console.log(typeof ret3);//輸出 string
console.log("*"+ret3+"*");//輸出 ** 以為下標(biāo)是29的不存在检激,所以是空的肴捉。
二、 charCodeAt
charCodeAt(index)
功能:獲取對應(yīng)下標(biāo)處字符的編碼(ASCII值)
參數(shù):下標(biāo)
返回值:獲取到的字符編碼(0~65535),沒有對應(yīng)的下標(biāo)返回NaN
var str2 = "senge森 is a good man";
var ret4 = str2.charCodeAt(3);
var ret5 = str2.charCodeAt(5);
var ret6 = str2.charCodeAt(29);
console.log(ret4);//輸出 103
console.log(ret5);//20975 Unicode(萬國碼)
console.log(ret6);//輸出 NaN
三叔收、 String.fromCharCode
String.fromCharCode(ASCII碼)
功能:將ASCII值轉(zhuǎn)成對應(yīng)的字符
參數(shù):ASCII值
返回值:對應(yīng)的字符
類名調(diào)用方法,稱為靜態(tài)方法(類方法)
對象調(diào)用方法傲隶,稱為實例方法(對象方法)
靜態(tài)方法優(yōu)點:
1.不用創(chuàng)建對象饺律,直接類名調(diào)用,結(jié)束內(nèi)存空間
2.效率高一些
var ret7 = String.fromCharCode(97);
console.log(ret7);//輸出 a
四跺株、 字符串大小寫的轉(zhuǎn)換
toLowerCase
toLowerCase()
功能:全部轉(zhuǎn)成小寫
參數(shù):無
以返回值的形式得到結(jié)果复濒,原字符串不會改變
var str3 = "senge is a Good mAn!";
var ret8 = str3.toLowerCase();
console.log(ret8);//輸出 senge is a good man!
console.log(str3);//輸出 senge is a Good mAn!
toUpperCase
toUpperCase()
功能:全部轉(zhuǎn)成大寫
參數(shù):無
以返回值的形式得到結(jié)果,原字符串不會改變
var ret9 = str3.toUpperCase();
console.log(ret9);//輸出 SENGE IS A GOOD MAN!
五乒省、 判斷是否相等
==
和 ===
運算符
一般js中判斷相不相等巧颈,都是用" == " 和 " === "
== 是值相等
=== 是值、類型相等
var str4 = 1;
var str5 = "1";
console.log(str4==str5);// true
console.log(str4===str5);// false
六袖扛、 localeCompare
localeCompare()
字符串比較大小
規(guī)則:兩個字符串從下標(biāo)為0字符開始比較砸泛,如果誰的ASCII值大那么誰就大,如果相等繼續(xù)比較后面的字符蛆封,當(dāng)兩個字符不想等時唇礁,停止比較,此時誰的ASCII值大誰就大惨篱。
var str6 = "senge is a good man"
var str7 = "senge is a nice"
返回值如果為1則前面的大于后面的盏筐。如果返回值為-1那么后面的大于前面的,如果返回值為0說明相等
var ret10 = str6.localeCompare(str7);
console.log(ret10);//輸出 -1
if (ret10<0) {
console.log("str6<str7");//以為ret10 = -1 所以會輸出這行str6<str7
}else if(ret10>0){
console.log("str6>str7");
}else{
console.log("str6=str7");
}
七砸讳、 漢字字符串比較大小
var str8 = "劉玉森";
var str9 = "太帥";
console.log(str8>str9);//輸出 true
八琢融、 查找字符串
indexOf
indexOf()
功能:默認(rèn)從左側(cè)開始查找對應(yīng)第一次出現(xiàn)的字符串的下標(biāo)
參數(shù):元素值
返回值:如果找到了對應(yīng)的元素則返回該元素的下標(biāo)值,否則返回-1
var str10 = "senge is a good man! senge is a nice man";
var ret11 = str10.indexOf("senge");
console.log(ret11);//輸出 0
lastIndexOf
lastIndexOf()
功能:從右側(cè)開始查找對應(yīng)第一次出現(xiàn)的字符串的下標(biāo)
參數(shù):元素值
返回值:如果找到了對應(yīng)的元素則返回該元素的下標(biāo)值簿寂,否則返回-1
var ret12 = str10.lastIndexOf("senge");
console.log(ret12);//輸出 21
九漾抬、 replace
replace()
功能:從左側(cè)開始查找對應(yīng)的字符串,找到之后把它替換陶耍。
返回值:替換之后的字符串
注意:不會更改原來的字符串
var str11 = "senge is a good man!"
var ret13 = str11.replace("good","handsome");
console.log(str11);//輸出 senge is a good man!
console.log(ret13);//輸出 senge is a handsome man!
十奋蔚、 提取字符串
var str12 = "senge is a good man! senge is a good man";
substring
1、從某個下標(biāo)開始提取烈钞,一直到提取到原字符串的末尾泊碑。
var ret14 = str12.substring(3);
console.log(ret14);//輸出 ge is a good man! senge is a good man
2、從參數(shù)1下標(biāo)開始提取毯欣,一直提取到原字符串參數(shù)2下標(biāo)之前馒过。
var ret15 = str12.substring(3,18);
console.log(ret15);//輸出 ge is a good ma
substr
3、從某個下標(biāo)開始提取酗钞,一直到提取到原字符串的末尾腹忽。
var ret16 = str12.substr(3);
console.log(ret16);//輸出 ge is a good man! senge is a good man
4来累、從某個下標(biāo)開始提取,一直提取參數(shù)2個長度。
var ret17 = str12.substr(3,18);
console.log("*"+ret17+"*");//輸出 *ge is a good man! *
十一窘奏、 split
split()
功能:切割字符串嘹锁。
返回值:被切割后的字符串被保存在數(shù)組中然后返回
var str13 = "senge is a good man senge is a good man";
var ret18 = str13.split(" ");
console.log(ret18);//輸出 ["senge", "is", "a", "good", "man", "senge", "is", "a", "good", "man"]
結(jié)束語
歲歲年年花相似,歲歲年年人不同着裹,程序員就是每天不同的敲代碼领猾,找bug,為我這每天辛苦的敲代碼的人點個贊骇扇,分享摔竿,打賞哦!I傩ⅰ继低!