Javascript 正则表达式不替换JS中的文本

Javascript 正则表达式不替换JS中的文本,javascript,jquery,regex,Javascript,Jquery,Regex,我有具体的代码: <script> $.fn.revert = function(){ return this.each(function() { var txt = $(this).html().replace(/<span class="gradientizer-done" style='color:rgb\(\d{1,3},\d{1,3},\d{1,3}\)>.<\/span>/g,''); $(this).html(txt); }); }; <

我有具体的代码:

<script>

$.fn.revert = function(){
return this.each(function() {
var txt = $(this).html().replace(/<span class="gradientizer-done" style='color:rgb\(\d{1,3},\d{1,3},\d{1,3}\)>.<\/span>/g,'');
$(this).html(txt);
});
};

</script>

但是我在
中没有看到任何变化。您在
style=
属性后面加了一个单引号,而不是双引号,而且您忘了在
style
属性后面加双引号

$(this).html().replace(/<span class="gradientizer-done" style="color:rgb\(\d{1,3},\d{1,3},\d{1,3}\)">.<\/span>/g,'');
                                                              ^                                    ^
$(this.html().replace(//g');
^                                    ^

您在
style=
属性后加了一个单引号,而不是双引号,而且您忘记在
style
属性的末尾加双引号

$(this).html().replace(/<span class="gradientizer-done" style="color:rgb\(\d{1,3},\d{1,3},\d{1,3}\)">.<\/span>/g,'');
                                                              ^                                    ^
$(this.html().replace(//g');
^                                    ^

更好的解决方案是:

var $container = $(".grad2");
$container.find(".gradientizer-done").each(function(){
  $(this).after($(this).text())
  $(this).remove()
})

更好的解决办法是:

var $container = $(".grad2");
$container.find(".gradientizer-done").each(function(){
  $(this).after($(this).text())
  $(this).remove()
})

非常感谢你。刚才注意到我还忘了捕获组和$1捕获组?哪里你的正则表达式没有任何捕获组。我是说我忘了添加它以使我的函数正常工作。。非常感谢你。刚才注意到我还忘了捕获组和$1捕获组?哪里你的正则表达式没有任何捕获组。我是说我忘了添加它以使我的函数正常工作。。非挥发性物质