正则表达式检查字符串是不是包含 CSS [关闭]
Posted
技术标签:
【中文标题】正则表达式检查字符串是不是包含 CSS [关闭]【英文标题】: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 的文本?
那么模式是:<something>:<something>;
您的str
无法编译。没有说明您的要求。因此,无法帮助您,因为我们无法帮助您“搜索数小时”来寻找答案。一旦您尝试编写正确的代码,使用或不使用正则表达式,那么我们将能够帮助您找到其中的错误(如果有)。
这个正则表达式似乎有效:/style="[a-zA-Z0-9:;, \-\(\)\n\+]+"/g
/style="[\s\S]+"/g
匹配任意字符
【参考方案1】:
你可以使用它
/(style\=)("|')(.*)("|')/ig
检查结果:See Result
【讨论】:
【参考方案2】:好吧,你可以检查冒号, 分号。没有什么复杂的需要。
类似'/:\s*[^;]*;?/'
翻译是一个冒号,有一个空格(0 个或多个)或在它之后的任何字符,但分号(可选)后跟分号(可选)。
一个 false true 将是一个像“hello : world”这样的字符串
那么我们必须检查冒号之前的单词。
'/[^-]+-[^:]+\s*:\s*[^;]*;?/'
这将检查之前的单词:它有 - 在中间。像 hello-world 不是 helloworld 或 hello world 或 hello
如果这是一个安全问题,永远不要相信客户端,总是在服务器端检查和清理 XSS
【讨论】:
以上是关于正则表达式检查字符串是不是包含 CSS [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
在 Ruby 中,我可以在不使用正则表达式的情况下检查字符串是不是包含字母吗?
Javascript:检查正则表达式是不是包含捕获组而不执行它[关闭]