2022年3月7日 星期一

JavaScript 2022 在正規表達式的新標準

前言

  最近發現 JavaScript 2022 有對正規表達式新增寫法,抽空做個學習,在此做個紀錄。


內容

  JavaScript 2022 有新增一個"d"的旗標給正規表達式,可以方便取得結果的文字的開頭與結尾,在先前的 在 JavaScript 的正規表達式取得比對結果的索引值 用的方法僅能找到開頭,範例如下

const regexp = /test\d/g; //without the /d flag
const regexp2022 = /test\d/dg; //with the /d flag
const str="test1test2";
const array = [...str.matchAll(regexp)];
const array2022 = [...str.matchAll(regexp2022)];
console.log(array[0].indices);//undefined
console.log(array2022[0].indices);//[[0, 5]]


使用的方法就是在正規表達式上加一個"d"的旗標,這樣回傳結果時會多一個"indices"的變數,跟之前在 在 JavaScript 的正規表達式取得比對結果的索引值 用"index"做發法不同,"index"僅有開頭並不包結尾,"indices"則會包含開頭與結尾。


參考資料

[ prog.world ] Work Proposals Included in the Coming ECMAScript 2022 Standard for JavaScript 


相關文章與資料

在 JavaScript 的正規表達式取得比對結果的索引值

沒有留言:

張貼留言