我们说我有一个字符串
let str = 'foo ${bar}baz ${foobar}'
我想提取${
和}
之间的所有元素
所以我希望返回['bar', 'foobar']
,最好在Javascript中使用String
的{{1}}函数。任何出色的正则表达巫师都愿意伸出援助之手?
答案 0 :(得分:1)
如果正则表达式不是真正的约束,我会做这样的事情:
let str = 'foo ${bar}baz ${foobar}'
console.log(str.split("${").slice(1).map(item => item.split("}")[0]))
// Outputs : ["bar", "foobar"]
否则,这是一个可能符合您需求的正则表达式:\${(.*?)}
。
答案 1 :(得分:0)
var str = 'foo ${bar}baz ${foobar}',
exp = /\$\{(\w*)\}/g,
matched,
matches = [];
while ((matched = exp.exec(str)) !== null) {
matches.push(matched[1]);
}
console.log(matches);
// Outputs: ["bar", "foobar"]