Javascript:用大括号查找文本镶嵌

时间:2012-02-23 14:25:32

标签: javascript jquery regex

我希望将所有文本放在大括号内。

请看下面的变量值:

var str = "Hi {my} name {is} dev {garcia}";

我想获得如下数组;

var extractedwords = [my,is,garcia]

我想,在这里我应该使用正则表达式来提取用大括号括起的所有字符串,然后将all全部推入数组。

我需要有关正则表达式操作的帮助,以查找用大括号括起来的字符串。

请帮忙!

3 个答案:

答案 0 :(得分:4)

"Hi {my} name {is} dev {garcia}".match(/[^{]+(?=\})/g)

正则表达式说:

[^{]+ - 在一次和无限次之间匹配任何不是“{”的任何字符,尽可能多次,根据需要回馈(贪婪)

(?=\}) - 断言匹配以“}”结尾而不实际收集字符(正向前瞻),这里因为你在[](一组)之外你必须逃避{{ 1}}说:}

运行它会产生:

\}

答案 1 :(得分:2)

你可以用正则表达式来完成。

http://jsfiddle.net/foxbunny/nuRJe/

答案 2 :(得分:0)

试试这个:

"Hi {my} name {is} dev {garcia}".match(/([^}{]+)(?=})/g);

它基本上意味着“匹配任何不是'{'或'}'的字符集(1或更多),直到你达到'}'(但排除}}

函数match()在字符串上运行并接受RegEx类型的对象

要了解有关正则表达式的更多信息,我建议您阅读: http://www.javascriptkit.com/javatutors/redev2.shtml

然后转到javascript控制台(在浏览器开发人员工具中)并使用这些命令。