1. 程式人生 > >js 中string 常見方法

js 中string 常見方法

strong 指定 log match nds last 如果 comment 出現

1.charAt 返回指定索引出的字符 var str=‘abcd‘;  var a=str.charAt(0);  console.log(a); //‘a‘ console.log(str); //‘abcd‘ 2.charCodeAt 返回指定索引出的unicode字符

 str.charCodeAt(0); //97

3.indexof 判斷一個字符第一次出現在某個字符串的索引,如果包含返回它的索引,如果不包含返回-1.

 str.indexOf(‘a‘); //0   str.indexOf(‘e‘); //-1

4.lastIndexOf 判斷一個字符最後一次出現在某個字符串的索引,如果包含返回它的索引,如果不包含返回-1.

 str.lastIndexOf(‘b‘); //1 str.lastIndexOf(‘e‘); //-1 5.concat拼接2個字符串,返回一個新字符串,對原有字符串沒有任何改變。

var str=‘qwe‘; var str1=‘abc‘; var str2=str.concat(str1);

console.log(str2);//"qweabc"

6.substr(n,m) 從索引n開始,截取m個字符,將截取的字符返回,對原字符串沒有任何改變。   var b=s.substr(1,1) console.log(b); //‘w‘

7.substring(n,m) 從索引n開始,截取到索引m,不包括m.將截取的字符返回,對原字符串沒有任何改變.

  var ee=str.substring(1,3);   console.log(ee); //"bc"

8.slice(n,m) 從索引n開始,截取到索引m,不包括m.將截取的字符返回,對原字符串沒有任何改變.  var aa=str.slice(0,3);   console.log(aa);//‘abc‘

9.split 用指定字符分割字符串,返回一個數組.對原字符串沒有任何改變。

  var a=str.split(‘‘); console.log(a); //["a", "b", "c", "d"]

10.replace(‘a‘,1); 替換指定字符,返回替換後新的字符串,對原有字符串有改變。(第一個參數可以是正則表達式) 只能替換一次 ,配合正則模式修飾符g使用   var str=‘aaaaee‘;   var reg=/a/g;   str.replace(reg,1); //"1111ee" 11.match() 可在字符串內檢索指定的值,或找到一個或多個正則表達式的匹配。把找到的字符放在數組裏,返回一個數組。

  var str=‘aaaa3ed33‘;   var reg=/a/g;   str.match(reg); //["a", "a", "a", "a"]

12.search() 方法用於檢索字符串中指定的子字符串,或檢索與正則表達式相匹配的子字符串。

es6新增加的方法

1.codePointAt() 能夠正確處理4個字節儲存的字符,返回指定索引出一個字符的碼點。codePointAt方法是測試一個字符由兩個字節還是由四個字節組成的最簡單方法。

var s = ‘??a‘;

s.codePointAt(0) // 134071

s.codePointAt(1) // 57271

codePointAt方法返回的是碼點的十進制值,如果想要十六進制的值,可以使用toString方法轉換一下。

var s = ‘??a‘;
s.codePointAt(0).toString(16) // "20bb7"
s.codePointAt(2).toString(16) // "61"不能識別32位的UTF-16字符

配合for...of循環使用,因為它會正確識別32位的UTF-16字符。

var s = ‘??a‘;
for (let ch of s) {
  console.log(ch.codePointAt(0).toString(16));
}
// 20bb7
// 61

2.codePointAt用於從碼點返回對應字符,但是這個方法不能識別32位的UTF-16字符(Unicode編號大於0xFFFF)。

String.fromCodePoint(0x20BB7)
// "??"
String.fromCodePoint(0x78, 0x1f680, 0x79) === ‘x\uD83D\uDE80y‘
// true

3.for..of 字符串的遍歷器接口

for (let codePoint of ‘foo‘) {
  console.log(codePoint)
}
// "f"
// "o"
// "o"

4.at() 返回指定索引處的字符

‘abc‘.at(0) // "a"
‘??‘.at(0) // "??"

5.includes():返回布爾值,表示是否找到了參數字符串。這三個方法都支持第二個參數,表示開始搜索的位置。

6.startsWith():返回布爾值,表示參數字符串是否在源字符串的頭部。這三個方法都支持第二個參數,表示開始搜索的位置。

7.endsWith():返回布爾值,表示參數字符串是否在源字符串的尾部。這三個方法都支持第二個參數,表示開始搜索的位置。

var s = ‘Hello world!‘;

s.startsWith(‘world‘, 6) // true
s.endsWith(‘Hello‘, 5) // true
s.includes(‘Hello‘, 6) // false

8.repeat() 方法返回一個新字符串,表示將原字符串重復n次。

‘x‘.repeat(3) // "xxx"
‘hello‘.repeat(2) // "hellohello"
‘na‘.repeat(0) // ""

9.padStart(),padEnd()字符串補全長度的功能

padStart()用於頭部補全

padEnd()用於尾部補全

padStartpadEnd一共接受兩個參數,第一個參數用來指定字符串的最小長度,第二個參數是用來補全的字符串。

‘x‘.padStart(5, ‘ab‘) // ‘ababx‘
‘x‘.padStart(4, ‘ab‘) // ‘abax‘

‘x‘.padEnd(5, ‘ab‘) // ‘xabab‘
‘x‘.padEnd(4, ‘ab‘) // ‘xaba‘

如果原字符串的長度,等於或大於指定的最小長度,則返回原字符串。

‘xxx‘.padStart(2, ‘ab‘) // ‘xxx‘
‘xxx‘.padEnd(2, ‘ab‘) // ‘xxx‘

如果用來補全的字符串與原字符串,兩者的長度之和超過了指定的最小長度,則會截去超出位數的補全字符串。

‘abc‘.padStart(10, ‘0123456789‘)

如果省略第二個參數,默認使用空格補全長度。

‘x‘.padStart(4) // ‘   x‘
‘x‘.padEnd(4) // ‘x   ‘

js 中string 常見方法