repeat()
trimstart()、trimend()
replaceall()
本文基於阮一峰的es6編寫,在此只介紹一些常用的。
本來js中只有`indexof`方法可以用來確定乙個字串是否包含在另乙個字串中。es6中又新增了三種新方法。
返回布林值,表示是否找到了引數字串。
let str = 'abcde'
str.includes('a') //true
支援第二個引數,表示開始搜尋的位置
let str = 'abcdef'
str.includes('a',2) //false
上述表示從字串的第三個位置到最後是否存在字串a
,很顯然不存在。
返回布林值,表示引數字串是否再源字串的頭部
let str = 'abcdef'
str.startswith('abc') // true
上述**表示字串abc
是否在字串的首部。
let str = 'abcdefg'
str.startswith('abc',2) //false
上述**意為從下標為2的字元開始到最後的這段字串中,是否以字串abc
開頭。
返回布林值,表示引數字串是否在源字串的尾部
let str = 'abcdefg'
str.endswith('fg') //true
str.endswith('fg',4) //false
endswith()
方法的第二個引數與其他兩個略有不同,指的是前n
個字元,如上,最後一句意為在源字串中的前4個字元組成的字串即'abcd'
是否是以'fg'
結尾的。
返回乙個新字串,將原字串重複n次
'x'.repeat(3) // "***" ①
'x'.repeat(2.9) // "xx" ②
'x'.repeat(0) // "" ③
'x'.repeat(-0.9) // "" ④
'x'.repeat(nan) // "" ⑤
'x'.repeat('3') // "***" ⑥
'x'.repeat(-1) //rangeerror ⑦
如果引數是乙個小數,那麼會先取整(②);如果引數是-1到0之間的小數,取值為0(④),如果是負數或是infinity,會報錯(⑦);如果是nan,等同於0(⑤),如果是字串會先轉換為數字(⑥)。
trim()方法會消除掉字串的首尾空格,trimstart()方法和trimend()方法,分別會消除字串的首部和尾部的空格。
let str = ' ab c d '
str.trim() // "ab c d"
str.trimstart() // "ab c d "
str.trimend() // " ab c d"
一次性替換所有匹配項,返回乙個新字串,不會改變原字串。
'aabbcc'.replaceall('a','pp') //"ppppbbcc"
第乙個引數可以是乙個字串,也可以是乙個全域性的正規表示式且必須是乙個全域性的,否則報錯。
'aabbcc'.replaceall(/a/g,'pp') //"ppppbbcc"
'aabbcc'.replaceall(/a/,'pp') //報錯
函式的第二個引數除了為字串,也可以是乙個函式,該函式的返回值將替換掉第乙個引數匹配的文字
'aabbcc'.replaceall('a',()=> 'pp') // "ppppbbcc"
這個替換函式可以接受多個引數,第乙個引數是捕獲到的匹配內容,第二個引數捕捉到是組匹配(有多少組匹配,就有多少個對應的引數)。此外,最後還可以新增兩個引數,倒數第二個引數是捕捉到的第乙個內容在整個字串的位置,最後乙個引數是原字串。
const str = '123abc456';
const regex = /(\d+)([a-z]+)(\d+)/g;
function replacer(match, p1, p2, p3, offset, string)
str.replaceall(regex, replacer)
// 0 (log)
// "123 - abc - 456"
借鑑字串的新增方法 ES6 字串擴充套件
1 字串可以使用 u x的形式來表達乙個字元,x叫做字元的碼點,x的範圍是0000 ffff,超過ffff的碼點需要用兩個雙位元組表示 如果我們 u後面的16進製制的值大於ffff,我們需要加乙個大括號 u讓js正確解析。2 我們應該都了解,漢字一般都需要兩個雙位元組來表示,在js中兩個位元組佔乙個...
ES6 字串的擴充套件
js中有indexof方法,來確認乙個字串是否包含在另乙個字串中。es6又提供了三中新方法 includes 返回布林值,表示是否找到了引數字串。startswith 返回布林值,表示引數字串是否在源字串的頭部。endswith 返回布林值,表示引數字串是否在源字串的尾部。let s hello w...
ES6 字串的擴充套件
1.at 返回字串給定位置的字元 charat 該方法不能識別碼點大於0xffff的字元 at 可以識別碼點大於0xffff的字元 2.includes 返回布林值,表示是否找到了引數字串 startswith 返回布林值,表示引數字串是否在源字串的頭部 endswidth 返回布林值,表示引數字串...