javascript - 无效的正则表达式`Javascript

标签 javascript html css regex

我试图用这个表达式解析 CSS 文件:

rulePatt = new RegExp("(?<=\\s)(?<!\\:\\s)#.*?\\{.*?\\}","gm");

它在我使用的两个不同的正则表达式测试器中工作,但是当我把它放在野外时它会生成 javascript 错误:

Uncaught SyntaxError: Invalid regular expression: /(?<=\s)(?<!\:\s)#.*?\{.*?\}/: Invalid group

在此处摆弄以形成对我要实现的目标的印象:http://jsfiddle.net/LoomyBear/44XtU/1/

我想我错过了一些非常重要的东西。 请帮忙 ... 谢谢!

最佳答案

你可以使用这个模式

var regex = /(?:^|[^:])\s(#[^{]*\{[^}]*\})/gm;

您的结果在第一个捕获组中。

解释:

(?:^|[^:])   # begining of the line or a character that is not a :
\s           # a white space
(#
[^{]*        # all characters expect { zero or more times
\{
[^}]*        # all characters expect } zero or more times
\})

第一个回顾 (?<=\s)在升号前加一个空格,这就是我之前写\s 的原因。 第二回看(?<!:\s)禁止 :在这个空格之前,因此,在这个位置只允许没有任何内容(即:行的开头)或不是 : 的字符。

关于javascript - 无效的正则表达式`Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17618645/

相关文章:

html - 如何增加表格内复选框的大小?

html - 调整图像悬停从中心向外而不是从左侧向外

javascript - 从 AngularJS 模板生成 HTML Canvas

javascript - React 上的 EditorJS

javascript - 浏览器对 Angular Material 的支持

javascript - 从文本区域内的文本中删除空格

javascript - 如何将一个 div 定位为 HTML5 视频播放器底部的一个 block ?

javascript - 为什么使用 onclick 在 location.reload() 之后返回 false?

html - 当屏幕尺寸缩小时,网站上的链接不起作用

jQuery .fadeIn() 不会覆盖 css