RegExp 用于匹配大括号中的单词
在 javascript 中,我有一个像这样的 HTML 块:
<h2>{title}</h2>
<p><a href="{url}">{content}</a></p>
我正在尝试使用正则表达式“match”来吐出所有 {item} 的数组。 所以我的输出应该如下所示:
['title', 'url', 'content']
我已经得到了:
var pattern = new RegExp("\{[a-zA-Z]+\}+");
var match = pattern.exec("{Sample} bob {text}");
但它只返回第一个标签。
这超出了我的正则表达式技能。 有人可以帮忙吗?
干杯!
In javascript, I've got a block of HTML like this:
<h2>{title}</h2>
<p><a href="{url}">{content}</a></p>
And I'm trying use regex "match" to spit out an array of all the {item}'s. So my output should look like:
['title', 'url', 'content']
I've gotten as far as:
var pattern = new RegExp("\{[a-zA-Z]+\}+");
var match = pattern.exec("{Sample} bob {text}");
But it's only returning the first tag.
This is just beyond my regex skills. Can anyone help?
Cheers!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
我想你想要:
第二个选项是一个标志,告诉它搜索整个字符串并返回所有匹配项。
请参阅:http://www.evolt.org/article/Regular_Expressions_in_JavaScript/17/36435 /了解更多详情。
I think you want:
The second option is a flag telling it to search the entire string and return all matches.
See: http://www.evolt.org/article/Regular_Expressions_in_JavaScript/17/36435/ for more details.
你试过这个了吗?
Have you tried this yet?
就像我喜欢推出自己的正则表达式(并且您实际上只需要全局标志)一样,您是否看过 原型模板、Trimpath JST 或类似的东西?
因为您自己的重用可能不如上面的示例那么有效。 EG:
这每次都会运行你的正则表达式,而我相信原型模板基本上会执行一次。
Much as I like to roll my own RegExp (and you really just need the global flag), have you looked at prototype templates, Trimpath JST or anything like that?
Because possibly rolling your own won't be as efficient for reuse as the above examples. EG:
This runs your regex each time, while I believe the prototype templates basically does it once.
我通过使用 exec 进行测试而偏离了道路。
I got off path by using
exec
for testing.您需要使用全局标志创建一个模式:
或:
然后您可以在字符串上调用 match() 方法来获取匹配列表:
You need to create a pattern with the global flag:
or:
Then you can call the match() method on your string to get a list of matches: