String物件的常用方法
阿新 • • 發佈:2021-09-01
String物件的常用方法
- 字串所有的方法,都不會修改字串本身(字串是不可變的),操作完成會返回一個新的字串
var str = 'abc';
str = 'hello';
// 當重新給str賦值的時候,常量'abc'不會被修改,依然在記憶體中
// 重新給字串賦值,會重新在記憶體中開闢空間,這個特點就是字串的不可變
// 由於字串的不可變,在大量拼接字串的時候會有效率問題
一、字元方法
charAt()
- 獲取指定位置處字元
var str = "lonhon";
str.charAt(2); //"n"
charCodeAt()
- 獲取指定位置處字元的ASCII碼
var str = "lonhon"; str.charCodeAt(2); //110
str[i]
- HTML5,IE8+支援
var str = "lonhon";
console.log(str[2])//"n"
二、字串操作方法
concat()
- 拼接字串,等效於+,+更常用。不會改變原字串,返回值是新字串。
var str = 'hello';
str.concat('hhh','哈哈哈'); //"hellohhh哈哈哈"
slice()
- slice(start,end),從start位置開始,擷取到end位置字元組成一個新的陣列。返回值是新字串。
var str = 'hello'; str.slice(1);//"ello" str.slice(1,2);//"e" //負數+陣列長度,來確定相應的位置。NaN=>0 str.slice(-1,-2);//=>str.slice(-1+5,-2+5);=>str.slice(4,3)=>"" str.slice(-2,-1);//=>str.slice(-2+5,-1+5);=>str.slice(3,4)=>"l" str.slice('ss',2);//=>str.substring(0,2)=>"he"
substring()
- substring(start,end),從start位置開始,擷取到end位置字元組成一個新的陣列。返回值是新字串。
var str = 'hello';
str.substring(1);//"ello"
str.substring(1,2);//"e"
//NaN、負數,替換為0。
str.substring(-1,-2);//=>str.substring(0,0)=>""
str.substring(-2,2);//=>str.substring(0,2)=>"he"
substr()
- substr(startt[,length]),從start位置開始,擷取length個字元組成一個新的陣列。返回值是新字串。
var str = 'hello';
str.substr(1);//"ello"
str.substr(1,2);//"el"
str.substr(-3,2);//"ll"
三、位置方法
indexOf()、lastIndexOf()
- indexOf(查詢的項,起點位置): 開頭向後查詢。找到返回位置,沒找到返回-1
- lastIndexOf(查詢的項,起點位置):末尾開始向前查詢。。找到返回位置,沒找到返回-1
var str = 'worldor';
str.indexOf('or',1)//1
str.indexOf('or',2)//5
str.lastIndexOf('o',1)//1
str.lastIndexOf('o',0)//-1
search()
- 查詢匹配字串的位置。返回值是查詢與內容匹配的第一個字串的位置。
var str = "ABCDECDF";
str.search("CD"); // 2
str.search("CDa"); // -1
//可用正則匹配
str.search(/CD/g); //2
match()
- 查詢匹配字串。返回值是存放匹配結果的陣列。陣列的內容依賴於 regexp 是否具有全域性標誌 g。
- 沒有 g,只執行一次匹配。
var str = "ABCD2ECD3F2";
str.match("CD"); // ["CD", index: 2, input: "ABCDECDF", groups: undefined]
str.match("CDa"); // null
//可用正則匹配
str.match(/CD/g); //["CD", "CD"]
str.match(/\d/g); //["2", "3","2"]
四、去除空白
trim()
- 只能去除字串前後的空白
var str = ' w orl d ';
str.trim('o',1)//"w orl d"
五、大小寫轉換方法
to(Locale)UpperCase()
- 轉換大寫
var str = 'world';
str.toUpperCase()//"WORLD"
to(Locale)LowerCase()
- 轉換小寫
var str = 'wORLd';
str.toLowerCase()//1
六、其他方法
replace()
- 用一些字元替換另一些字元。返回值是一個新字串
var str="ABCDECDF"
str.replace("CD","22"); //"AB22ECDF"
//可用正則匹配
str.replace(/CD/i,"22"); //"AB22ECDF"
str.replace(/CD/g,"22"); //"AB22E22F"
split()
- 將一個字串按分割符分割為子字串,然後將結果作為字串陣列返回 。返回值是一個數組
var str = "AA BB CC DD EE FF";
str.split(" ",3)//["AA", "BB", "CC"]
str.split(" ")//["AA", "BB", "CC", "DD", "EE", "FF"]
str.split("DD")//["AA BB CC ", " EE FF"]
fromCharCode()
- 將指定的 Unicode 值,轉成對應的字元。返回一個字串。
var str = String.fromCharCode(72,69,76,76,79);
console.log(str);//HELLO