首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Javascript获取大括号中的子字符串值

Javascript获取大括号中的子字符串值
EN

Stack Overflow用户
提问于 2014-07-17 09:31:31
回答 3查看 2K关注 0票数 1

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

代码语言:javascript
运行
复制
The {Name_Student} is living in {City_name}

如果可能,如何在大括号({})之间,在数组中获取子字符串的值!我正试图在javascript中实现这一点。

(预先谢谢:)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-07-17 09:35:57

匹配值,然后删除curlys:

代码语言:javascript
运行
复制
str.match(/\{.+?\}/g).map(function(x){return x.slice(1,-1)})

或者您可以通过捕获组来完成这一任务:

代码语言:javascript
运行
复制
var res = []
str.replace(/\{(.+?)\}/g, function(_, m){res.push(m)})
票数 4
EN

Stack Overflow用户

发布于 2014-07-17 09:35:04

regex {([^}]+)}捕获到组1的所有匹配项(请参见regex演示右窗格中的捕获)。下面的代码检索它们。

In JavaScript

代码语言: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
EN

Stack Overflow用户

发布于 2014-07-17 09:33:57

下面的regex将把大括号内的值捕获到第一个组中。

代码语言:javascript
运行
复制
\{([^}]*)\}

演示

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24799778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档