使用Regex检查字符串是否有效

Shi*_*mmy 4 css regex validation css3

我需要检查用户的输入是否是有效的CSS语法(输入字符串基本上是一个CSS文件).它可以包含类,选择器!important等.

我没有开始研究它,因为我希望已经有一些正则表达式语法,所以我不必从头开始.

我尝试使用谷歌搜索,但我发现的是部分css匹配字符串,而不是验证所有可能的CSS的正则表达式.

Bry*_*ott 8

好的,所以我提出了一个匹配有效的CSS样式的正则表达式..

([#.@]?[\w.:> ]+)[\s]{[\r\n]?([A-Za-z\- \r\n\t]+[:][\s]*[\w .\/()\-!]+;[\r\n]*(?:[A-Za-z\- \r\n\t]+[:][\s]*[\w .\/()\-!]+;[\r\n]*(?2)*)*)}
Run Code Online (Sandbox Code Playgroud)

这里的工作示例:

http://regex101.com/r/fK9mY3

请记住..在检查上面的示例链接后,您会看到此正则表达式适用于常见的基本CSS2样式,但是,匹配所有CSS3样式变体,与http://www.w3.org/TR/css3-syntax相关/#detailed-grammar,这个正则表达式需要一些调整......上面的正则表达式是一个起点然而..

  • 这就是正则表达式的陷阱:除非您能够考虑所有条件,否则它们的复杂性非常高……更糟糕的是,因为标准仍在不断发展,越旧,这个答案就越无效。尽管这应该被编写为一个具有易于更新的“if”条件的完整函数,但还是付出了巨大的努力。 (2认同)