Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式添加!分号前的重要信息(如果不存在)_Javascript_Regex - Fatal编程技术网

Javascript 正则表达式添加!分号前的重要信息(如果不存在)

Javascript 正则表达式添加!分号前的重要信息(如果不存在),javascript,regex,Javascript,Regex,我将html元素作为字符串,并且必须在每个“;”之前添加“!important”如果仍然不存在 我正在使用这个正则表达式: /[^!important(\s*)];(?=[^<>]+:|\s*")/g 检查“;”之前是否没有“!important”。 (\s*)允许在“;”的“!important”之间添加空格 正则表达式的第二部分: (?=[^<>]+:|\s*") (?=[^]+:|\s*) 我不确定,但我相信它在字符串中找到了所有的“;” 最后,我使用java

我将html元素作为字符串,并且必须在每个“;”之前添加“!important”如果仍然不存在

我正在使用这个正则表达式:

/[^!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;)
我使用了这里提出的问题: 经过一些改变,我得到了以下结果:

几个问题:

  • 这个正则表达式查找“;”不在“!important”后面,但它标记“;”还有一个以前的角色。例如:
    “颜色:黄色;”
    ->它标记为:
    “w;”

  • 关于问题1,如果我在“黄色”到“;”之间有空格,像这样:
    “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