精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

讓開發者生活更輕松的 JavaScript 字符串方法

開發 前端
在本教程中,將解釋必須了解的 JavaScript 字符串處理方法,讓你能夠編寫干凈、自解釋的代碼。

JavaScript 最初被引入作為一種簡單的客戶端腳本語言,但現在,它已經成為一種真正的 WORA(一次編寫到處運行)語言,使開發者能夠構建桌面、移動、電視、CLI 和嵌入式應用程序。JavaScript 的初學者友好語法、生產性語言特性和良好管理的 ECMAScript 規范,激勵了所有人使用 JavaScript 進行通用編程。

ECMAScript 標準通過提供許多語言特性來提高開發者的生產力。它通過內置的 String 對象引入了幾種字符串方法,使開發者能夠高效地處理字符串數據。這些高效的字符串方法激勵開發者使用 JavaScript 解決文本處理問題,而無需使用外部庫或從頭編寫冗長的代碼。

在本教程中,將解釋必須了解的 JavaScript 字符串處理方法,讓你能夠編寫干凈、自解釋的代碼。

使用 at() 方法進行簡潔的負索引訪問

JavaScript 在字符串和數組對象中實現了傳統的基于方括號的索引元素訪問,但由于語言設計的限制,它不像 Python 那樣實現負索引支持。例如,下面代碼片段中的第二條日志語句返回 undefined,因為它嘗試查找的是對象屬性而不是索引元素:

let m  = 'JavaScript';
console.log(m[m.length - 1]);  // t
console.log(m[-1]);            // undefined

可以使用 JavaScript 的 Proxy 對象實現字符串的負索引支持,但這不如在字符串和數組對象中實現的內置 at() 方法高效。at() 方法讓我們可以簡化最后一個字符的訪問,如下所示:

let m  = 'JavaScript';
console.log(m.at(-1));  // t

使用 includes()、startsWith() 和 endsWith() 字符串搜索方法

過去,開發者經常使用 indexOf() 方法在字符串對象中搜索字符串片段。他們使用 Regex 或基于 indexOf()/substring() 的解決方案來檢查特定字符串的開始和結束。ES6 版本為這些需求引入了單獨的內置字符串方法。

includes() 方法檢查字符串中是否存在特定字符集:

let m  = 'JavaScript';
console.log(m.includes('Java'));  // true

startsWith() 方法檢查字符串的開頭,如下代碼片段所示:

let filename  = '_testmatrix.json';
console.log(filename.startsWith('_'));  // true

同時,endsWith() 方法檢查字符串的結尾,如下所示:

let filename  = '_testmatrix.json';
console.log(filename.endsWith('.json'));  // true

這些內置字符串方法讓我們可以編寫簡單的語句來滿足常規的字符串搜索需求,而無需使用基于正則表達式或其他算法的解決方案。

使用 repeat() 方法進行字符串重復

在通用編程語言中構建字符串時,我們經常需要進行字符串重復。假設需要使用 ASCII 字符在終端上創建一條水平線。Python 允許開發者使用 * 操作符高效地處理這個問題,如下代碼片段所示:

print('+-' * 10)  # +-+-+-+-+-+-+-+-+-+-

在 ES6 之前,JavaScript 開發者不得不使用一些技巧在不使用循環結構的情況下重復字符串。大多數開發者使用以下方法:

console.log(new Array(11).join('+-'));  // +-+-+-+-+-+-+-+-+-+-

ES6 引入了 repeat() 字符串方法,以高效地替代舊的非自解釋代碼進行字符串重復:

console.log('+-'.repeat(10));

使用字符串修剪方法刪除多余的空白

在各種開發場景中,我們經常需要通過刪除空白字符來預處理字符串。例如,您可能需要刪除使用 <textarea> HTML 元素捕獲的用戶輸入中的空白。過去,大多數開發者使用正則表達式來清理字符串,如下所示:

function trim(str) {
  return str.replace(/^\s+|\s+$/g, '');
}

console.log(trim('  Hello JavaScript    '));  // 'Hello JavaScript'

上述 trim() 函數刪除了前導和尾隨的空白字符。

JavaScript 在 String 對象上實現了 trim()、trimStart() 和 trimEnd() 方法,用于處理空白刪除。trim() 方法刪除前導和尾隨的空白字符。同時,其他兩個方法幫助我們有選擇地清理前導和尾隨空白,如下代碼片段所示:

let txt = '  Hello JavaScript \n ';

console.log(txt.trimStart());  // 'Hello JavaScript \n '
console.log(txt.trimEnd());    // '  Hello JavaScript'
console.log(txt.trim());       // 'Hello JavaScript'

使用 String.raw() 靜態方法創建原始字符串

JavaScript 提供了模板字符串特性,以高效地生成包含各種表達式的動態字符串。此特性消除了使用 ${} 語法進行字符串拼接的需求。JavaScript 允許你使用標記函數實現自定義模板字面量處理器。

看以下示例代碼片段:

function secret(strings, ...exps) { 
  return strings.reduce((acc, str, i) => 
    (acc + str + (exps.length > i ? '*'.repeat(exps[i].toString().length) : '')), '');
}

let txt = secret`My username is ${'Bingo'}, and my password is ${1234}`;

console.log(txt);  // My username is *****, and my password is ****

上述 secret() 標記函數為模板字符串表達式中的所有值添加星號字符。正如你已經注意到的,我們可以通過在特定模板字符串前使用標記函數,而不是使用傳統的括號式函數調用語法來執行標記函數。

內置的 String.raw() 標記函數允許我們存儲不處理轉義字符的原始字符串。假設需要使用 JavaScript 存儲以下 Windows 文件路徑:

C:\Projects\MyProject1\myproject.config.json

我們不能正確地在 JavaScript 中存儲此字符串,因為它的轉義字符被處理并刪除了多個字符:

let path = 'C:\Projects\MyProject1\myproject.config.json';
console.log(path);  // C:ProjectsMyProject1myproject.config.json

在這里,我們可以使用 String.raw() 標記函數來防止轉義字符處理:

let path = String.raw`C:\Projects\MyProject1\myproject.config.json`;
console.log(path);  // C:\Projects\MyProject1\myproject.config.json

String.raw 標記函數自動為轉義字符添加雙反斜杠,以正確存儲原始字符串。此標記函數還適用于存儲包含字符串中反斜杠的正則表達式定義:

let regex = String.raw`\s*${10}\s*`;
console.log('2   10  20'.replace(new RegExp(regex), ''));  // 220

在上面的示例中,我們在字符串中存儲了動態構建的正則表達式定義,而無需使用雙反斜杠。

使用 padStart() 和 padEnd() 方法填充字符串

在構建 Web 應用程序時,填充字符串是一個常見需求。我們經常需要為字符串應用填充字符,以獲得固定的字符串長度。假設有一個從 0 開始并以 10 結束的數字列表,并在表格列中顯示。我們可以使用前導零填充這一場景,通過一個共享的實用函數來提高表格的視覺效果,如下所示:

function format(num) {
  return num.toString().padStart(2, '0');
}

let arr = new Array(11).fill().map((e, i) => i);

document.write(`<table>
  <tr>
    <th>#</th>
  </tr>
`);
for(let n of arr) {
  document.write(`<tr>
      <td>${format(n)}</td>
    </tr>`);
}
document.write('</table>');

在這里,我們使用內置的 padStart() 方法添加前導零填充,而不是編寫自己的字符串填充算法。上述代碼片段渲染了零填充的數字,如下所示:

ECMAScript 標準還引入了 padEnd() 方法,用于在特定字符串末尾添加填充字符,具體如下:

let token = 'TK023550L';
let displayToken = token.substring(0, 5).padEnd(token.length, '*');
console.log(`Token: ${displayToken}`);    // Token: TK023****

使用 replaceAll() 和 matchAll() 方法進行高效字符串處理

在 ES2021 之前,開發者不得不使用正則表達式來替換所有出現的特定字符串片段,因為 replace() 函數只替換第一次出現:

let msg = 'Hello JavaScript, Hello JavaScript';

console.log(msg.replace('JavaScript', 'Js'));  // Hello Js, Hello JavaScript
console.log(msg.replace(/JavaScript/g, 'Js')); // Hello Js, Hello Js

ES2021 引入了 replaceAll() 字符串方法,以替換所有出現的特定字符串片段:

console.log(msg.replaceAll('JavaScript', 'Js'));  // Hello Js, Hello Js

同時,ES2020 版本引入的 matchAll() 方法幫助我們使用可迭代協議遍歷正則表達式匹配。此方法幫助我們避免使用 while 循環和 Regex.exec() 的傳統正則表達式結果迭代方法(請參閱此解釋)。

看以下代碼片段:

let msg = 'AT01 BT023 AB02 AT224';
let matches = msg.matchAll(/\b(([A-Z]{2})([0-9]{2}))\b/g);  

for(let match of matches) {
  console.log(`${match[2]}-${match[3]}`);  // AT-01, AB-02
}

上述代碼片段使用 matchAll() 方法遍歷所有捕獲組。

責任編輯:姜華 來源: 大遷世界
相關推薦

2023-06-29 15:08:21

JavaScrip開發

2011-03-28 17:55:54

Root Tools隨意改Android開發工具

2022-10-18 16:35:51

JavaScrip數組參數

2018-04-19 11:04:47

微軟Win10開發者

2010-08-17 09:01:39

jQueryAPI

2023-12-01 08:21:51

開發者Android組件庫

2009-09-27 14:01:29

Spring MVC

2012-07-30 14:57:35

Android 開發者

2018-06-06 14:03:19

2013-09-03 09:42:13

Android開發者

2020-09-03 10:13:49

JavaScript字符串pad

2013-09-03 09:35:30

Android開發碎片化

2016-12-01 14:51:03

2014-08-20 10:02:54

GitGit能力

2023-04-17 19:23:10

字符串Bash

2013-09-02 11:33:38

百度

2022-05-06 12:03:16

數組Javascript

2012-08-10 09:52:27

紅帽

2012-03-13 16:04:49

點贊
收藏

51CTO技術棧公眾號

国产精品久久久久久免费播放| 在线免费观看麻豆| tube8在线hd| 99在线视频精品| 国产精品久久91| 日本一级特级毛片视频| 国内露脸中年夫妇交换精品| 色哟哟一区二区在线观看| 中文字幕日韩av电影| 色男人天堂av| 中文字幕人成乱码在线观看| 中文无字幕一区二区三区| 91沈先生播放一区二区| 波多野结衣 久久| 中文字幕一区二区三区在线视频 | 成人在线免费av| 一区二区在线看| 日产精品久久久一区二区| 精品久久国产视频| 日韩精品电影在线| 久久久久久美女| 精品日韩在线视频| 黄视频免费在线看| 国产精品嫩草影院com| 国产精品美女久久久久av福利| 天天干天天插天天射| 国内精品久久久久久久影视麻豆| 一区二区三区亚洲| 久久久久成人精品无码中文字幕| 黄网av在线| 欧美国产一区在线| 久久精品国产精品青草色艺| 三级黄色在线视频| 午夜精品毛片| 在线播放日韩欧美| 亚洲av无码成人精品国产| 欧美激情精品| 亚洲免费观看视频| 天天人人精品| 日本福利午夜视频在线| 成人午夜在线视频| 91亚洲国产精品| 中文字幕在线网址| 日韩国产精品久久久久久亚洲| 性亚洲最疯狂xxxx高清| 久久久久97国产| 在线精品视频在线观看高清| 色偷偷av一区二区三区乱| 老熟妇一区二区| 免费精品国产| 亚洲欧美中文另类| 日韩欧美国产片| 欧美日韩精品一区二区三区视频| 激情亚洲一区二区三区四区| 欧美一区二区三区在线播放| 天天躁日日躁狠狠躁喷水| 午夜影院日韩| 2020欧美日韩在线视频| 日韩伦人妻无码| 亚洲激情影院| 97视频色精品| 少妇一级淫片免费放中国| 夜夜嗨一区二区三区| 97国产suv精品一区二区62| 精品人妻在线播放| 伊人蜜桃色噜噜激情综合| 久久久视频在线| 国产极品在线播放| 在线一区视频| 国产精品91久久久| 夜夜躁很很躁日日躁麻豆| 久久国产综合精品| 91久久久久久久久久久久久| 国产手机av在线| 成人黄色av电影| 国产精品精品久久久| 欧美 亚洲 另类 激情 另类| 久久超碰97中文字幕| 亚洲va欧美va在线观看| 亚洲国产欧美另类| 青青草91视频| 91青草视频久久| 亚洲精品国产一区二| av欧美精品.com| 色综合久久av| av在线免费播放| 香蕉成人啪国产精品视频综合网| 欧美aⅴ在线观看| av网站在线免费| 亚洲国产一区二区在线播放| 能在线观看的av| 欧美a一级片| 日韩女优av电影| 欧美多人猛交狂配| 久久久久久免费视频| 午夜精品一区二区三区在线视频 | 欧美唯美清纯偷拍| 91香蕉视频在线观看视频| 精品淫伦v久久水蜜桃| 亚洲深夜福利网站| 成人免费毛片东京热| 国产精品久久久久久久免费软件| 国产精品三级网站| 亚洲精品久久久久久无码色欲四季| 久久综合色之久久综合| 亚洲第一综合网站| 成人欧美大片| 日韩欧美一区二区视频| 亚洲色图第四色| 亚洲性人人天天夜夜摸| 国产精品免费久久久久影院| 理论片中文字幕| 国产精品久久影院| 91视频最新入口| 色8久久久久| 日韩成人激情在线| 永久看片925tv| 日韩精品一区第一页| 国产高清精品一区二区三区| av网站在线免费观看| 狠狠色狠色综合曰曰| 伊人成人免费视频| 国内精品视频在线观看 | 欧美极品视频在线观看| 日韩精品视频网站| 国产主播一区二区三区四区| 国产一二区在线| 精品婷婷伊人一区三区三| 538国产视频| 国产综合精品一区| 91精品免费视频| 91精品国产综合久久久久久豆腐| 丰满岳妇乱一区二区三区| 在线观看你懂的视频| 天天久久综合| 国产欧美日韩精品丝袜高跟鞋| 欧美 日韩 国产 成人 在线 91| 国产精品一二二区| 亚洲欧洲久久| 色天使综合视频| 亚洲精品一区二区网址| 日韩久久久久久久久| 丁香激情综合五月| 国产精品视频一二三四区| 青草综合视频| 成人免费在线电影网| 欧美日韩精品三区| 毛片aaaaaa| 日韩在线观看一区二区| 日韩久久精品一区二区三区| 欧美黑人粗大| 亚洲欧美日韩天堂一区二区| 久热这里只有精品6| a级高清视频欧美日韩| 久久久亚洲精品无码| 欧美三级午夜理伦三级小说| 97在线视频国产| 午夜av免费在线观看| 懂色av影视一区二区三区| 在线免费观看成年人视频| 久久成人国产| 日韩电影在线播放| 久久久精品一区二区毛片免费看| 中文字幕欧美精品在线| 91精品中文字幕| 一区二区三区中文在线观看| 被黑人猛躁10次高潮视频| 狠狠色丁香久久综合频道| 高清av免费一区中文字幕| www.欧美日本韩国| 欧美一级久久久| 久久久久亚洲av无码网站| 欧美成人日本| 国产日韩欧美精品| 日韩三区免费| 精品国产一区二区三区久久狼黑人 | 热色播在线视频| 亚洲精品国产精品国自产在线 | 亚洲欧美日韩精品一区二区 | 九色在线视频| 一区二区三区中文免费| 午夜男人的天堂| 欧美亚洲视频| 亚洲国产一区二区三区在线| 麻豆精品久久| 欧美亚洲成人免费| 日本中文在线| 精品国产1区二区| 天天干天天操天天操| 1000部国产精品成人观看| 怡红院一区二区| 日本女人一区二区三区| 免费观看亚洲视频| 精品久久久久久久| 成人三级视频在线观看一区二区| 不卡av播放| 久久国产色av| 免费黄色片在线观看| 日韩一区二区视频| 成人a v视频| av爱爱亚洲一区| 亚洲高清免费在线观看| 亚洲国产影院| 在线视频亚洲自拍| 欧洲vs亚洲vs国产| 亚洲a中文字幕| 台湾佬成人网| 欧美激情视频三区| 色多多视频在线观看| 亚洲精品久久久久中文字幕欢迎你| 中文字幕精品无码亚| 欧美日韩亚洲视频一区| 欧美日韩在线视频免费| 国产精品丝袜一区| 中文人妻一区二区三区| 国产成人aaa| 热久久久久久久久| 久久久综合色| 久久av一区二区三区亚洲| 欧美国产中文高清| 成人av在线亚洲| 欧美xxxx做受欧美护士| 91精品国产99久久久久久| 伊人影院在线视频| 色婷婷综合成人av| 国产黄色片在线观看| 日韩精品在线电影| 欧美少妇bbw| 日韩一二在线观看| 91久久精品国产91性色69| 欧美午夜激情在线| 日本美女xxx| 91在线播放网址| 深夜视频在线观看| 国产精品一色哟哟哟| 中文字幕精品一区二区三区在线| 久久综合图片| 日本三级免费观看| 欧美一区=区| 欧美变态另类刺激| 亚洲精品综合| 日韩精品 欧美| 日韩午夜高潮| 鲁一鲁一鲁一鲁一色| 国产精品毛片在线| 国产黄色一级网站| 蜜桃伊人久久| 91香蕉视频导航| 夜间精品视频| 97精品国产97久久久久久粉红| 91视频综合| 在线视频欧美一区| 欧美有码视频| 超碰超碰超碰超碰超碰| 亚洲天堂日韩在线| 欧美日韩在线一二三| 中文精品一区二区| 日韩理论片在线观看| 成人看的视频| 最新精品视频| 欧美激情视频一区二区三区免费| 国产小视频免费| 在线播放一区| 成人观看免费完整观看| 老牛国产精品一区的观看方式| 欧美性猛交xxx乱久交| 美国十次了思思久久精品导航| 色91精品久久久久久久久| 国产一区在线视频| 国产伦精品一区二区三区精品| 久久这里只精品最新地址| 日韩女同一区二区三区| 成人欧美一区二区三区白人 | 蜜桃视频在线免费| 综合网中文字幕| 伊人222成人综合网| 国内精品久久久久久| 高潮一区二区| 国产在线精品一区免费香蕉| 91亚洲精品视频在线观看| 久久av一区二区三区亚洲| 日本不卡电影| av日韩在线看| 天堂午夜影视日韩欧美一区二区| 欧美一级xxxx| 99久久伊人精品| 伊人影院综合网| 亚洲成年人网站在线观看| 天天射天天干天天| 日韩欧美一级二级三级| 日韩精品系列| 欧美精品免费在线| 国模冰冰炮一区二区| 成人免费福利视频| 亚洲a级精品| 99久re热视频精品98| 另类图片国产| 69久久精品无码一区二区| 久久亚洲综合av| 欧美日韩精品一区二区三区视频播放| 欧美性jizz18性欧美| 精品国自产在线观看| 在线视频中文亚洲| 国产免费拔擦拔擦8x在线播放| 国产精品一区av| 欧美日韩破处| 4444亚洲人成无码网在线观看| 日本视频一区二区| 日本黄色免费观看| 亚洲免费观看高清完整版在线观看熊| 成人午夜视频在线播放| 日韩美女视频在线| 思思99re6国产在线播放| 2019亚洲男人天堂| 波多野结衣一区二区三区免费视频| 亚洲国产精品www| 亚洲伊人观看| 欧洲熟妇的性久久久久久| 一区免费观看视频| 亚洲大尺度在线观看| 日韩经典第一页| 欧美6一10sex性hd| 亚洲自拍偷拍色片视频| 日韩久久精品网| caoporn超碰97| www国产精品av| 白白色免费视频| 午夜精品久久久久久久蜜桃app| 国产毛片一区二区三区va在线| 一级做a爰片久久毛片美女图片| 韩日毛片在线观看| 国产精品一区二区三区免费观看| 一本一道久久a久久精品蜜桃| 538任你躁在线精品免费| 国产网站一区二区三区| 国产成人免费看| 精品国产一区二区三区久久影院 | 亚洲欧美视频在线观看| 伊人免费在线观看| 中日韩美女免费视频网址在线观看 | 精品国产伦一区二区三区| 日韩网站免费观看高清| 国产精品videossex撒尿| 欧美在线视频二区| 日韩制服丝袜先锋影音| аⅴ天堂中文在线网| 在线观看日韩精品| 国产成人天天5g影院在线观看| 国产成人精品免高潮在线观看| 伊人久久大香线蕉av不卡| 国产免费一区二区三区视频| 91蝌蚪国产九色| 日日夜夜操视频| 永久555www成人免费| 精品福利在线| 99热这里只有精品7| 国产精品羞羞答答xxdd| 久草免费新视频| 亚洲国产精品va在线观看黑人| 五月天av在线| 日韩精品极品视频在线观看免费| 久久一区二区三区四区五区 | 亚洲三级理论片| www.黄色一片| 97热精品视频官网| 国产欧美日韩| 五月天婷婷影视| 亚洲一级二级三级在线免费观看| 天堂在线观看av| 日韩av色综合| 久久精品免视看国产成人| 成人在线观看毛片| 不卡的av网站| 青青草视频在线观看免费| 色香阁99久久精品久久久| 欧洲精品99毛片免费高清观看| 日本人体一区二区| 国产午夜久久久久| 99在线精品视频免费观看软件 | 午夜一区二区三视频在线观看| 九九九久久久精品| 国产无码精品在线观看| 国产亚洲视频中文字幕视频| 精品一区二区三区中文字幕在线| 福利视频一二区| 国产日韩av一区二区| 99热这里只有精品在线| 91sa在线看| 天天综合精品| 亚洲第一黄色网址| 欧美放荡的少妇| 美女搞黄视频在线观看| 中国成人亚色综合网站| www.成人在线| 97人人爽人人爽人人爽| 91av在线免费观看视频| 久久精品久久久| 精品成人无码一区二区三区| 日韩一二三区不卡| 91p九色成人|