使用javascript正则表达式提取花括号内的内容

时间:2016-12-01 20:46:01

标签: javascript regex

我们说我有一个字符串

let str = 'foo ${bar}baz ${foobar}'

我想提取${}之间的所有元素 所以我希望返回['bar', 'foobar'],最好在Javascript中使用String的{​​{1}}函数。任何出色的正则表达巫师都愿意伸出援助之手?

2 个答案:

答案 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"]