javascript 正则表达式模式匹配 css 选择器

标签 javascript css regex

我想尝试使用 js reg 过滤所有选择器。预测我要匹配div#abc.read-more。(请注意div, #abc, .read-more all 可以存在也可以不存在。但如果div 存在,则应该在开头)。我在两个数组中列出我知道的所有情况:匹配和不匹配。这是 test code .我使用 jasmine 测试工程师。

我现在使用的 reg 模式是 /((\bdiv)+|(\.read-more)+|(#abc)+)(\s*|(:\w+)+)\s *(((?=,)(.*))|$)/

但是还有两种情况没有通过。 .read-morediv#abc#abcdiv.read-more。常见的是 div 在中间。

抱歉,但我只知道还有两种情况也会失败:div.read-morediv#abcdiv#abcdiv.read-more。这两者应该是无与伦比的。

有人可以帮忙吗?如果您能解释如何获得解决方案,我将不胜感激。 :D

最佳答案

对于 div.read-morediv#abc:

((\bdiv)+|(.read-more)+|(#abc)+) 匹配最后的 '#abc'

(\s*|(:\w+)+) 匹配后面的0个空格(\s*)

\s* 再次匹配 0 个空格

(((?=,)(.*))|$) 匹配字符串的结尾(通过 |$​​)

另一个例子的模式是相似的。在这两种情况下,在生成匹配时完全忽略“div”的存在,因为第一组中的 3 部分 OR 的另一部分就足够了。

关于javascript 正则表达式模式匹配 css 选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20624853/

相关文章:

javascript - jQuery .html() 参数

javascript - 数字数组在字母数组之前加载

html - css标签宽度不生效

javascript - REGEX 帮助,= 符号后的变量名称

javascript - 如何将此 jQuery 代码转换为 javascript 代码?

javascript - js可变高度div

css - margin 的奇怪行为

css - 创建一个 4x3 的 CSS 面板网格

regex - Powershell正则表达式-匹配到字符

正则表达式:验证文件名不以 .doc 结尾