簡體   English   中英

JS字符串:用正則表達式中的索引替換

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM