精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

国产精品久久久久久久免费观看 | 五月婷婷欧美视频| 91精品久久久久久蜜桃| 免费在线观看日韩| 猛男gaygay欧美视频| 欧美片在线播放| 黄页网站大全在线观看| www在线免费观看| 国产成人精品影视| 国产精品私拍pans大尺度在线| 亚洲av片不卡无码久久| 国产精品原创视频| 亚洲一区二区三区小说| 日韩精品久久一区二区三区| 亚洲免费成人在线| 老司机精品视频在线| 午夜伦理精品一区| 美女三级黄色片| 久久99精品久久久久久园产越南| 精品久久久久久久久久久| 日韩欧美亚洲在线| 少妇高潮一区二区三区99小说| 亚洲精品偷拍| 久久影院模特热| 成人免费av片| 亚洲亚洲一区二区三区| 欧美日韩在线三区| 男人日女人bb视频| 蜜桃传媒在线观看免费进入 | www.在线播放| 99久久久精品免费观看国产蜜| 久久91亚洲精品中文字幕奶水| 中文字幕久久av| 欧美电影h版| 无码av中文一区二区三区桃花岛| 国产一区自拍视频| 91肉色超薄丝袜脚交一区二区| 久久久久亚洲| 国产一区二区黑人欧美xxxx| www.色多多| 亚洲尤物av| 亚洲精品综合久久中文字幕| 亚洲精品国产成人av在线| 亚洲1区在线| 欧美一级一区二区| 被黑人猛躁10次高潮视频| 亚洲精品无播放器在线播放| 精品视频1区2区| 一道本在线免费视频| 成人免费在线观看视频| 欧美少妇bbb| 国产三级三级看三级| 欧美大陆国产| 正在播放亚洲一区| 午夜av中文字幕| 日韩伦理一区二区| 欧美理论片在线| 91视频免费入口| 一区二区三区四区精品视频| 日韩欧美精品在线视频| 久久久久久久久久久久国产精品| 欧美男女交配| 在线观看亚洲成人| 日日干夜夜操s8| 国产欧美日韩电影| 日韩三级在线观看| 亚洲少妇一区二区三区| 久久这里只有精品一区二区| 国产午夜精品麻豆| 四虎影成人精品a片| 欧美精品色图| 九九热r在线视频精品| 日本系列第一页| 免费在线成人| 国产精品久久久久久久久久| ,一级淫片a看免费| 粉嫩aⅴ一区二区三区四区五区| 国产精品看片资源| 国产精品羞羞答答在线| 国产精品综合久久| 激情欧美一区二区三区中文字幕| av网站在线免费看| 岛国精品一区二区| 欧美欧美一区二区| 激情在线小视频| 亚洲成a人v欧美综合天堂下载| 国产精品亚洲天堂| 天天色天天射天天综合网| 午夜久久久久久电影| 午夜视频在线瓜伦| 欧美高清hd| 亚洲欧美www| 麻豆明星ai换脸视频| 国产视频亚洲| 91在线免费观看网站| 天天色综合久久| 国产精品久久久久久久久久久免费看| 欧美一级爽aaaaa大片| 日日夜夜精品一区| 亚洲一二三四久久| 免费看国产黄色片| 成人免费在线电影网| 在线日韩第一页| 国产精品99精品| 久久国产视频网| 久久久久久99| 欧美videos另类精品| 欧美日韩你懂得| 中文字幕av网址| 欧美视频一区| 91精品国产自产在线| 神马久久久久| 亚洲一区二区三区中文字幕 | 日韩色视频在线观看| 大又大又粗又硬又爽少妇毛片 | 亚洲欧美在线人成swag| 精品网站999www| 免费无遮挡无码永久在线观看视频| 日韩精品久久| 奇米一区二区三区四区久久| 丰满熟妇乱又伦| 日韩一区欧美小说| 在线观看高清免费视频| 天堂一区二区三区四区| 欧美国产日韩视频| 96亚洲精品久久久蜜桃| 国产视频一区二区在线| 18禁免费无码无遮挡不卡网站| 精品极品在线| 亚洲爱爱爱爱爱| 欧美国产日韩综合| 精品在线播放午夜| 亚洲一区三区视频在线观看| jizz内谢中国亚洲jizz| 亚洲国产精品免费| 日韩aaaaaa| av中文字幕一区| 无码av天堂一区二区三区| 国内不卡的一区二区三区中文字幕| 精品久久人人做人人爰| 五月婷婷一区二区| 国产伦精品一区二区三区免费 | 亚洲专区中文字幕| 九义人在线观看完整免费版电视剧| 亚洲激情图片小说视频| 中文字幕第一页在线视频| 99久久99久久精品国产片桃花| 欧美精品日韩三级| 中文字幕在线网站| 国产精品看片你懂得| 国产高清视频网站| 欧美电影《睫毛膏》| 国产一区二区丝袜| 黄色小网站在线观看| 欧美一级高清大全免费观看| 久草资源在线视频| caoporn国产精品| 国产极品尤物在线| 美女少妇全过程你懂的久久| 国产精品www色诱视频| xxxxx日韩| 制服.丝袜.亚洲.中文.综合| 久久久久亚洲av无码专区| 白白色 亚洲乱淫| 无码人妻丰满熟妇区毛片18| 精品久久久久久久久久久aⅴ| 久久久久久久久91| 亚洲 欧美 自拍偷拍| 婷婷国产在线综合| 丰满少妇高潮一区二区| 欧美aaa在线| 精品国产三级a∨在线| 一区二区三区视频免费视频观看网站| 一区二区欧美激情| 国产一区二区小视频| 亚洲美女区一区| 亚洲成人日韩在线| 九九九久久久精品| 欧美视频免费看欧美视频| 在线日韩一区| 91人人爽人人爽人人精88v| 激情在线视频播放| 亚洲欧洲一区二区三区在线观看| 亚洲国产综合久久| 国产欧美一区二区三区网站| 人人爽人人爽av| 亚洲欧洲午夜| 亚洲精品国产一区| h视频久久久| 国产精品久久久久7777婷婷| bestiality新另类大全| 亚洲男人天堂2019| av观看在线免费| 一本久久精品一区二区| 国产极品国产极品| 久久久国产精品午夜一区ai换脸| 欧美网站免费观看| 99国产**精品****| 国产亚洲欧美另类一区二区三区 | 日韩国产欧美| 97超碰人人模人人爽人人看| 超级碰碰久久| 欧美激情视频一区二区| 1024国产在线| 亚洲国产精品系列| 精品人妻少妇嫩草av无码专区| 亚洲黄色录像片| 国产精品酒店视频| www久久久久| 人妻 丝袜美腿 中文字幕| 久久电影网站中文字幕| 国产v片免费观看| 欧美成人tv| 亚洲午夜精品一区二区| 久久99视频| 久久精品美女| xxxx日韩| 91久久国产婷婷一区二区| 国精产品一区一区三区四川| 国外视频精品毛片| 伊人影院蕉久影院在线播放| 色偷偷91综合久久噜噜| 九色网友自拍视频手机在线| 欧美精品一区二区三区高清aⅴ| 天天操天天射天天爽| 亚洲精选视频在线| www.xx日本| 国产精品久久久久婷婷| 在线观看国产精品一区| 久久久久久久久久久99999| 私密视频在线观看| 丁香婷婷综合色啪| 性生活一级大片| 国产精品亚洲一区二区三区在线 | 亚洲电影av在线| 一区二区三区www污污污网站| 亚洲综合丁香婷婷六月香| 日韩av毛片在线观看| 国产丝袜欧美中文另类| 中国女人特级毛片| 国产欧美日本一区二区三区| 亚洲午夜精品久久久久久高潮| 国产精品自拍网站| 国产资源中文字幕| 国产精品一区二区视频| 小日子的在线观看免费第8集| 伊人成人在线| 国产日韩欧美精品在线观看| 国产精品theporn| 国产aaa免费视频| 亚洲国产导航| 欧美成人免费在线观看视频| 99综合视频| 免费大片在线观看| 青青青爽久久午夜综合久久午夜| 免费看黄色a级片| 欧美精品自拍| 水蜜桃色314在线观看| 国产欧美不卡| 无码少妇一区二区三区芒果| 日韩av一二三| 伊人免费视频二| www.av亚洲| 一区二区三区久久久久| 国产精品成人在线观看| 欧美毛片在线观看| 图片区小说区国产精品视频| 中文字幕日韩免费| 欧美精品自拍偷拍| 精品国产18久久久久久| 日韩av在线最新| 9色在线观看| 欧美高清视频一区二区| 国产精选在线| 91精品久久久久久久久久另类 | 高清国产在线观看| 欧美国产乱子伦| www色aa色aawww| 亚洲大型综合色站| 国产午夜无码视频在线观看| 欧美日韩国产免费| 亚洲女人18毛片水真多| 亚洲免费视频网站| 国产黄色小视频在线| 88国产精品欧美一区二区三区| 调教一区二区| 日韩免费观看高清| 成人自拍视频| 欧美不卡福利| 欧美激情aⅴ一区二区三区| 黄色动漫在线免费看| 九一久久久久久| 中国美女乱淫免费看视频| 国产精品久久久久精k8| 日本亚洲色大成网站www久久| 免费成人深夜夜行p站| 国产伦精品一区二区三区免费迷| 熟女性饥渴一区二区三区| 毛片av一区二区| 欧美成人手机在线视频| 91麻豆国产香蕉久久精品| jizz日本在线播放| 欧美日韩中文在线观看| 国产成年妇视频| 国产一区二区三区视频在线观看| 福利在线播放| 午夜精品三级视频福利| 国产精品亚洲成在人线| 久久精品99久久| 黑丝一区二区| 九九九九九国产| 国产欧美日韩综合精品一区二区| 日本人亚洲人jjzzjjz| 亚洲综合精品久久| 一级淫片免费看| 亚洲小视频在线| a'aaa级片在线观看| 国产综合视频在线观看| 欧美日韩性在线观看| 免费成人午夜视频| 国产99久久久国产精品潘金网站| 97人妻精品一区二区三区免费| www.爱久久.com| 久久久久久蜜桃| 日韩丝袜美女视频| 在线观看黄色av| 国产精品日韩欧美综合| 精品中文一区| 久久久久久久中文| 波多野结衣一区二区三区| 久久久99精品| 日韩视频一区二区在线观看| 麻豆视频在线观看免费网站| 国产精品扒开腿做爽爽爽男男| 91丨精品丨国产| 亚洲.欧美.日本.国产综合在线| 在线观看国产精品入口| 男人添女人下面免费视频| 国产亚洲一区二区在线观看| 日韩精品成人一区| 日韩成人久久久| 欧亚av在线| 欧美极品一区二区| 欧美亚洲在线| 精品人妻无码一区二区三区| 色婷婷精品大在线视频| 黄色网址在线播放| 国产精品成久久久久三级| 国产日产精品一区二区三区四区的观看方式| 先锋影音一区二区三区| 青青草精品视频| 人妻互换一区二区激情偷拍| 欧美日本一道本| av网站网址在线观看| 91精品中文在线| 激情久久一区| 久久久久久久久免费看无码 | 欧美成人精品欧美一级私黄| 制服丝袜中文字幕一区| 中日韩高清电影网| 国产福利久久精品| 国产一区白浆| 天堂在线中文视频| 3d动漫精品啪啪1区2区免费| 三级资源在线| 久久精品一二三区| 琪琪一区二区三区| 午夜精品久久久久99蜜桃最新版| 婷婷夜色潮精品综合在线| 日韩三级电影网| 国产精品久久久久久久久久久不卡 | 中文字幕在线三区| 国产精品视频一区二区三区经| 日韩欧美午夜| 亚洲黄色片免费| 亚洲成人一区在线| 国内精品一区视频| 成人免费大片黄在线播放| 国产综合激情| 少妇按摩一区二区三区| 欧美精品一二三四| 91超碰在线| 亚洲精品在线免费看| 国产成人免费xxxxxxxx| 国产又黄又猛又粗又爽| 久久久精品久久| 神马香蕉久久| 亚洲涩涩在线观看| 午夜精品123| 欧美jizzhd欧美| 欧美日韩亚洲一区二区三区在线观看| 亚洲福利免费| 国产精品麻豆免费版现看视频| 色天天综合色天天久久| jizz性欧美| 美女被啪啪一区二区| 国产精品一区免费在线观看| 无码人妻精品一区二区蜜桃色欲| 亚洲精品美女久久| 99精品视频在线免费播放 |