[英]JS string: Replace with index in regex
我幾乎沒有使用regex的經驗,我想知道您將如何替換由regex標識的字符串中的某個部分,其中索引是所標識部分的一部分?
這是我的示例字符串:
let exampleStr = "How do I {0} the {n} with the {1} in my array?";
這是我的數據數組:
let arr = ["replace", "items"];
現在,使用replace和regex,我想將{#}部分中的索引與匹配索引的數組元素進行匹配。
結果字符串:
let result = "How do I replace the {n} with the items in my array?";
請注意,由於它不包含數字值,它將如何忽略{n}。
我可以使用Array.indexOf,Number.isNaN,typeof等來做到這一點,但是正則表達式似乎是“正確”且更清潔的方式,雖然有點難於閱讀:)
提前致謝。
您可以使用帶有回調的replace
:
let exampleStr = "How do I {0} the {n} with the {1} in my array?"; let arr = ["replace", "items"]; let result = exampleStr.replace(/\\{(\\d+)\\}/g, (g0, g1)=>arr[parseInt(g1,10)]); console.log(result);
模式很簡單-它匹配花括號內的數字,並將該數字捕獲為組號1。
回調函數解析數字(這不是嚴格要求的,但是arr["1"]
並不漂亮),然后從數組中返回正確的元素。
回調可以使用更多的錯誤檢查。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.