【问题标题】:Regex to check if string contains CSS [closed]正则表达式检查字符串是否包含 CSS [关闭]
【发布时间】:2021-12-30 02:35:49
【问题描述】:

我有一个示例字符串。我想测试它是否包含 CSS。什么是正则表达式?

const str ="<p style="margin-top: 0px; margin-bottom: 0px; font-size: 13px; padding: 0px; 
            border: 0px; vertical-align: baseline; overflow-wrap: break-word; color: 
            rgb(51, 51, 51); font-family: Roboto, sans-ser"

const str1 ="This is a simple string not containing any CSS"
 
// someRegex is regex like /<(?:br|p)[^>{]*>|<\/\w+\s*>/ or any other

console.log(someRegex.test(str) //should return true

console.log(someRegex.test(str1) //should return false  

【问题讨论】:

  • 你想检查字符串是否包含CSS,你的意思是属性style是否存在?或者您想知道内容是类似于 CSS 的文本?
  • 那么模式是:&lt;something&gt;:&lt;something&gt;;
  • 您的str 无法编译。没有说明您的要求。因此,无法帮助您,因为我们无法帮助您“搜索数小时”来寻找答案。一旦您尝试编写正确的代码,使用或不使用正则表达式,那么我们将能够帮助您找到其中的错误(如果有)。
  • 这个正则表达式似乎有效:/style="[a-zA-Z0-9:;, \-\(\)\n\+]+"/g
  • /style="[\s\S]+"/g 匹配任意字符

标签: javascript css regex


【解决方案1】:

你可以使用它

/(style\=)("|')(.*)("|')/ig

检查结果:See Result

【讨论】:

    【解决方案2】:

    好吧,你可以检查冒号, 分号。没有什么复杂的需要。

    类似'/:\s*[^;]*;?/'

    翻译是一个冒号,有一个空格(0 个或多个)或在它之后的任何字符,但分号(可选)后跟分号(可选)。

    一个 false true 将是一个像“hello : world”这样的字符串

    那么我们必须检查冒号之前的单词。

    '/[^-]+-[^:]+\s*:\s*[^;]*;?/'

    这将检查之前的单词:它有 - 在中间。像 hello-world 不是 helloworld 或 hello world 或 hello

    如果这是一个安全问题,永远不要相信客户端,总是在服务器端检查和清理 XSS

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-30
      • 1970-01-01
      • 2012-02-19
      相关资源
      最近更新 更多