JavaScript正则表达式获取字符串中的所有匹配项

时间:2016-12-09 16:50:22

标签: javascript regex

我想在字符串中获取一系列匹配项。目前,我的字符串是媒体查询。我删除了媒体查询中的所有新行,因此一个媒体查询可能如下所示:

union()

我想要做的是从媒体查询中获取所有类,包括它们的样式属性。所以我想要一个如下所示的数组:

@media (max-width: 1200px) { .container { padding-left: 0px; } .bundles {padding-right:10px} }

这是我的尝试:

[".container { padding-left: 0px; }", ".bundles {padding-right:10px}"]

我假设var identifiers = mediaQuery.match(/\.(.*)}/); 会给我所有的比赛。但是我只得到一场比赛,所以我一定做错了。

2 个答案:

答案 0 :(得分:2)

试试这个:

/\.\w+\s*\{[^\}]+\}/

请注意,它只会找到简单的类,而不是id或任何复杂的css选择器。既然你在问题中写了类,那么正则表达式应该没问题。如果你需要更复杂的比赛,那么改善你的问题我会改进我的答案:)

答案 1 :(得分:2)

您需要在

中使用g(用于全局)标识符
var identifiers = mediaQuery.match(/\.(.*?)}/g);

请参阅文档here。另外,正如@chiliNUT的评论中所提到的,您需要使用.*?而不是.*才能让您的正则表达式变得贪婪。有关详情,请参阅here