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

标签 javascript regex

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

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

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

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

这是我的尝试:

var identifiers = mediaQuery.match(/\.(.*)}/);

我假设 match 会给我所有匹配项。但是我只得到一场比赛,所以我一定是做错了什么。

最佳答案

您需要使用 g(用于全局)标识符

var identifiers = mediaQuery.match(/\.(.*?)}/g);

参见文档 here .此外,正如@chiliNUT 在评论中提到的,您需要使用 .*? 而不是 .* 以使您的正则表达式不贪婪。参见 here了解更多。

关于JavaScript 正则表达式获取字符串中的所有匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41065204/

相关文章:

javascript - axios POST 后在 Vue 组件中显示更新数据的问题

javascript - 当选择一个选项时,我需要更改 HTML 中的链接

javascript - 如何在 javascript/nodejs 中拆分包含 n 个连接的 json 字符串的字符串?

python - 从变量中删除值的最佳方法?创建数组,或使用正则表达式?或者用Xpath?

javascript - 将 html 标签放在字符串中的匹配项周围

javascript - 正则表达式以在文本 block 中设置用户名样式

c# - 如何形成这个正则表达式

javascript - 读取 Angular 应用程序中请求的 url

java - 为什么我应该在不同的情况下使用不同数量的转义字符?

javascript - HTML:如何从下拉列表中删除 "None"