Javascript 正则表达式添加!分号前的重要信息(如果不存在)
我将html元素作为字符串,并且必须在每个“;”之前添加“!important”如果仍然不存在 我正在使用这个正则表达式:Javascript 正则表达式添加!分号前的重要信息(如果不存在),javascript,regex,Javascript,Regex,我将html元素作为字符串,并且必须在每个“;”之前添加“!important”如果仍然不存在 我正在使用这个正则表达式: /[^!important(\s*)];(?=[^<>]+:|\s*")/g 检查“;”之前是否没有“!important”。 (\s*)允许在“;”的“!important”之间添加空格 正则表达式的第二部分: (?=[^<>]+:|\s*") (?=[^]+:|\s*) 我不确定,但我相信它在字符串中找到了所有的“;” 最后,我使用java
/[^!important(\s*)];(?=[^<>]+:|\s*")/g
检查“;”之前是否没有“!important”。
(\s*)
允许在“;”的“!important”之间添加空格
正则表达式的第二部分:
(?=[^<>]+:|\s*")
(?=[^]+:|\s*)
我不确定,但我相信它在字符串中找到了所有的“;”
最后,我使用javascript“replace”进行更改
var str3 = str.replace(/[^!important(\s*)];(?=[^<>]+:|\s*")/g, '!important;')
var str3=str.replace(/[^!important(\s*))];(?=[^]+:[^\s*”)/g',!important;)
我使用了这里提出的问题:
经过一些改变,我得到了以下结果:
几个问题:
“颜色:黄色;”
->它标记为:“w;”
“color:yellow;”
,它不能识别为我必须添加的字符串“!important”我尝试使用这些空格,允许添加\t,\s,删除它们,并且多次尝试都没有成功。主要问题是正则表达式只标记2个字符,而不是分号。您应该从另一个角度看问题-删除可选的现有
!重要信息
和添加!重要信息
在行尾:
str.replace(/\s*(!important)?\s*;/g, ' !important;')
您只需检查该行是否不包含
!重要信息
使用indexOf()
方法,如果是,请更换代码>带有的字符!重要的代码>:
var str=“flaot:left;”;
if(str.indexOf(“!important”)=-1){
str=str.replace(“;”,“!important;”);
}
警报(str)代码>可能是最简单的方法
更换!重要的代码>由编写代码>
s/\!important\s*;/;/g
然后
替换代码>由编写!重要的代码>
s/;/\!important;/g
当人们试图用解决问题时!重要信息
-它们会造成另一个更严重的问题,因此没有!修复它非常重要。太好了!只需删除正则表达式末尾的“$”,这是不必要的。
s/;/\!important;/g