【发布时间】:2020-02-02 05:40:13
【问题描述】:
function format(template, ...values) {
return template.replace(/{(\d+)}/g, (_,i) => values[i]);
}
上述解决方案返回一个格式化的字符串。例如format("{0}{1}{2}{1}{0}", "k", "a", "y") 返回“kayak”。
知道JS中的字符串替换功能,这里没有得到箭头功能
【问题讨论】:
-
第一个参数只是不用了。
-
但是 i 值是如何递增的?我的意思是我无法理解占位符如何被箭头函数的值替换
-
第二个参数是捕获组。
{0}将捕获0,例如,因此传递给format的第二个参数将是替换 -
我认为这被错误地标记为重复问题。
-
正则表达式匹配结构如
{0}、_将是{0}(整个正则表达式)和i将是0(第一个捕获组),箭头函数返回values[0]用于第一场比赛,将{0}替换为k。
标签: javascript regex string arrow-functions