Javascript获取花括号内的子字符串值

时间:2014-07-17 09:31:31

标签: javascript jquery regex

我一直在寻找regexp来获取大括号之间的值,但是在互联网上找到的示例仅限于一个子字符串,而我需要获得与该模式匹配的所有子字符串值。 例如:

The {Name_Student} is living in {City_name}

如果可能的话,如何在数组中使用大括号({})获取子串的值!我试图在javascript中实现它。

提前致谢:)

3 个答案:

答案 0 :(得分:4)

匹配值,然后删除卷曲:

str.match(/\{.+?\}/g).map(function(x){return x.slice(1,-1)})

或者您可以使用捕获组执行此操作:

var res = []
str.replace(/\{(.+?)\}/g, function(_, m){res.push(m)})

答案 1 :(得分:2)

正则表达式{([^}]+)}捕获与组1的所有匹配项(请参阅the regex demo右侧窗格中的捕获)。下面的代码检索它们。

在JavaScript中

var the_captures = []; 
var yourString = 'your_test_string'
var myregex = /{([^}]+)}/g;
var thematch = myregex.exec(yourString);
while (thematch != null) {
    // add it to array of captures
    the_captures.push(thematch[1]);
    document.write(thematch[1],"<br />");    
    // match the next one
    thematch = myregex.exec(yourString);
}

<强>解释

  • 我们将字符串捕获到第1组。代码检索它们并将它们添加到数组中。
  • {匹配左大括号
  • ([^}]+)捕获不属于第1组
  • 的所有字符
  • }匹配右括号

答案 2 :(得分:1)

以下正则表达式会将大括号内的值捕获到第一组中。

\{([^}]*)\}

DEMO