使用javascript中的regex从字符串中提取“包装”值

时间:2014-03-21 11:41:08

标签: javascript regex

我有一个字符串如下:

randomword,random${notavalue;randomword${iwantthisrandompart1}randomword${iwantthisrandompart2}randomword

如何在此示例中仅提取${}内的值,即iwantthisrandompart1iwantthisrandompart2

2 个答案:

答案 0 :(得分:2)

var s="randomword,random${notavalue;randomword${iwantthisrandompart1}randomword${iwantthisrandompart2}randomword"
var myRe=/\$\{([^}{]*)\}/g
var m=myRe.exec(s)
while (m!=null) {alert(m[1]);m=myRe.exec(s)}

试一试。你需要的部分将被警告"

答案 1 :(得分:-1)

这将解决您的烦恼

(?<=\$\{)[^\$\{]*(?=\})

正则表达式演示:http://regex101.com/r/oY0bU9

更新:因为javascript不支持lookbehind

(?=\$\{)\$\{([^\$\{]*(?=\}))

演示:http://regex101.com/r/rJ3nI3