1. 程式人生 > 其它 >String物件的常用方法

String物件的常用方法

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
  • 查詢匹配字串的位置。返回值是查詢與內容匹配的第一個字串的位置。
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