ES6學(xué)習(xí) 第四章 字符串的新增方法

前言

本章介紹字符串對象的新增方法戚啥。不常用的方法不做重點(diǎn)筆記猫十。
本章原文鏈接:字符串的新增方法

includes()拖云、startsWith()乏苦、endsWith()

確定一個(gè)字符串是否包含在另一個(gè)字符串中汇荐。ES6 又提供了三種新方法掀淘。

  • includes() 方法用于判斷一個(gè)字符串是否包含在另一個(gè)字符串中
  • startsWith() 方法用來判斷當(dāng)前字符串是否以另外一個(gè)給定的子字符串開頭
  • endsWith() 方法用來判斷當(dāng)前字符串是否是以另外一個(gè)給定的子字符串“結(jié)尾”的
方法名 返回值 描述 第二個(gè)參數(shù) : Num
includes() 布爾值 一個(gè)字符串是否包含參數(shù)字符串 從第 Num 個(gè)位置直到字符串結(jié)束
startsWith() 布爾值 一個(gè)字符串的開頭是否包含參數(shù)字符串 從第 Num 個(gè)位置直到字符串結(jié)束
endsWith() 布爾值 一個(gè)字符串的結(jié)尾是否包含參數(shù)字符串 表示前 Num 個(gè)字符
let sampleString = 'Hello world!';

const sample1 = sampleString.includes('llo');
const sample2 = sampleString.startsWith('H');
const sample3 = sampleString.endsWith('d!');
console.log(sample1, sample2, sample3); // true true true

// 使用第二個(gè)參數(shù)
const sample11 = sampleString.includes('llo', 1);
const sample12 = sampleString.startsWith('H', 1);
const sample13 = sampleString.endsWith('d!', 10);
console.log(sample11, sample12, sample13); // true false false

repeat()

repeat()方法返回一個(gè)新字符串冕碟,表示將原字符串重復(fù)n次安寺。
參數(shù)為小數(shù)就會(huì)向下取整叹放,為負(fù)數(shù)和無窮(Infinity)則會(huì)報(bào)錯(cuò).

參數(shù) 處理
小數(shù) 向下取整
字符串 先轉(zhuǎn)換成數(shù)字
負(fù)數(shù) 報(bào)錯(cuò)
Infinity 報(bào)錯(cuò)
const SAMPLE = 'Ha';
let sample1 = SAMPLE.repeat(4); // 重復(fù)四次
console.log(sample1); // HaHaHaHa

let sample2 = SAMPLE.repeat(1.8); // 參數(shù)為小書井仰,向下取整
console.log(sample2); // Ha

let sample3 = SAMPLE.repeat('3'); // 參數(shù)為字符串
console.log(sample3); // HaHaHa

let sample4 = SAMPLE.repeat(-4); // 參數(shù)為負(fù)數(shù)
console.log(sample4); // 直接報(bào)錯(cuò) Invalid count value

padStart(),padEnd()

ES2017 引入了字符串補(bǔ)全長度的功能合是。如果某個(gè)字符串不夠指定長度聪全,會(huì)在頭部或尾部補(bǔ)全娃圆。

  • padStart()用于頭部補(bǔ)全讼呢。
  • padEnd()用于尾部補(bǔ)全悦屏。

padStart()padEnd()都接受兩個(gè)參數(shù)

  • 參數(shù)一:字符串補(bǔ)全生效的最大長度。如果當(dāng)前字符串小于指定的長度幕帆,則進(jìn)行補(bǔ)全失乾。
  • 參數(shù)二:用來補(bǔ)全的字符串。如果字符串長度過長纽竣,則會(huì)刪除后面的多出的字符串蜓氨。默認(rèn)空格補(bǔ)全。
const SAMPLE = '368';

let newSample = SAMPLE.padStart(11, "000,");
let newSample1 = SAMPLE.padEnd(11, ",000");
console.log(newSample); // 000,000,368
console.log(newSample1); // 368,000,000

trimStart()港令,trimEnd()

ES2019 對字符串實(shí)例新增了trimStart()trimEnd()這兩個(gè)方法。去處字符串的空白符淋淀,它們的行為與trim()一致绅喉,空白符包括:空格、制表符 tab革屠、換行符等其他空白符等似芝。

trim() 消除字符串的頭尾空白符。
trimStart()消除字符串頭部的空白符寞奸,別名為:trimLeft();
trimEnd()消除字符串尾部的空白符。別名為:trimRight();
返回值為一個(gè)新字符串瓷翻,表示除去空格的調(diào)用字符串齐帚。

const SAMPLE = '  Ha  ';
let newSample = SAMPLE.trimStart();
let newSample1 = SAMPLE.trimEnd();
console.log(newSample); // Ha  
console.log(newSample1); //   Ha

matchAll()

matchAll()方法返回一個(gè)包含所有匹配正則表達(dá)式的結(jié)果,返回的是一個(gè)迭代器(Iterator)。
這塊不深入饥伊,后面正則表達(dá)式擴(kuò)展再進(jìn)行詳解。

const string = 'sample1sample2sample3';
const regex = /sample/g;

for (const match of string.matchAll(regex)) {
  console.log(match);
}
// 遍歷輸出
/*
['sample', index: 0, input: 'sample1sample2sample3', groups: undefined]
['sample', index: 7, input: 'sample1sample2sample3', groups: undefined]
['sample', index: 14, input: 'sample1sample2sample3', groups: undefined]
*/

replaceAll()

簡單來說,可以一次性替換所有匹配冻押。

// 語法
String.prototype.replaceAll(searchValue, replacement);

replaceAll()方法返回一個(gè)新字符串括袒,新字符串所有滿足 pattern 的部分都已被replacement 替換

兩個(gè)參數(shù)

  • 參數(shù)一: 可以是一個(gè)字符串锹锰,也可以是一個(gè)全局的正則表達(dá)式(帶有g(shù)修飾符)。
  • 參數(shù)二:第二個(gè)參數(shù)replacement是一個(gè)字符串痢士,表示替換的文本怠蹂,其中可以使用一些特殊字符串。除了為字符串赞庶,也可以是一個(gè)函數(shù),該函數(shù)的返回值將替換掉第一個(gè)參數(shù)searchValue匹配的文本摊册。
    • $&:匹配的字符串。
    • $ `:匹配結(jié)果前面的文本棋枕。
    • $':匹配結(jié)果后面的文本白修。
    • $n:匹配成功的第n組內(nèi)容,n是從1開始的自然數(shù)重斑。這個(gè)參數(shù)生效的前提是兵睛,第一個(gè)參數(shù)必須是正則表達(dá)式。
    • $$:指代美元符號$。
const SAMPLE = 'HaHa祖很,huhu,hehe';
let sample1 = SAMPLE.replaceAll('h', 'H');
let sample2 = SAMPLE.replaceAll('H', () => 'h');
console.log(sample1); // HaHa假颇,HuHu胚鸯,HeHe
console.log(sample2); // haha,huhu拆融,hehe

String.raw()

ES6 還為原生的 String 對象蠢琳,提供了一個(gè)raw()方法啊终。是用來獲取一個(gè)模板字符串的原始字符串的镜豹,在大多數(shù)情況下, String.raw()是用來處理模版字符串的。

console.log(`Hi\n${2+3}!`); // 
/*
輸出
Hi
5!
*/
console.log( String.raw`Hi\n${2+3}!`); // 輸出 Hi\n5!

String.fromCodePoint()

String.fromCodePoint()靜態(tài)方法返回使用指定的代碼點(diǎn)序列創(chuàng)建的字符串蓝牲√酥可以識(shí)別大于0xFFFF的字符,彌補(bǔ)了String.fromCharCode()方法的不足例衍。

console.log(String.fromCodePoint(9731, 9733, 9842, 0x2F804));
// 直接輸出 ?★?你
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末昔期,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子佛玄,更是在濱河造成了極大的恐慌硼一,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件梦抢,死亡現(xiàn)場離奇詭異般贼,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)奥吩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進(jìn)店門哼蛆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人霞赫,你說我怎么就攤上這事腮介。” “怎么了端衰?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵叠洗,是天一觀的道長。 經(jīng)常有香客問我旅东,道長灭抑,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任玉锌,我火速辦了婚禮名挥,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘主守。我一直安慰自己禀倔,他們只是感情好榄融,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著救湖,像睡著了一般愧杯。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鞋既,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天力九,我揣著相機(jī)與錄音,去河邊找鬼邑闺。 笑死跌前,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的陡舅。 我是一名探鬼主播抵乓,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼靶衍!你這毒婦竟也來了灾炭?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤颅眶,失蹤者是張志新(化名)和其女友劉穎蜈出,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體涛酗,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡铡原,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了煤杀。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片眷蜈。...
    茶點(diǎn)故事閱讀 39,779評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖沈自,靈堂內(nèi)的尸體忽然破棺而出酌儒,到底是詐尸還是另有隱情,我是刑警寧澤枯途,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布忌怎,位于F島的核電站,受9級特大地震影響酪夷,放射性物質(zhì)發(fā)生泄漏榴啸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一晚岭、第九天 我趴在偏房一處隱蔽的房頂上張望鸥印。 院中可真熱鬧,春花似錦、人聲如沸库说。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽潜的。三九已至骚揍,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間啰挪,已是汗流浹背信不。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留亡呵,地道東北人抽活。 一個(gè)月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像政己,于是被迫代替她去往敵國和親酌壕。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容