我有特定的代码:

<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>


这段代码:

<p class="grad2" one="ffffff" second="000000">
<span class="gradientizer-done" style="color:rgb(255,255,255)"> </span>
<span class="gradientizer-done" style="color:rgb(219,219,219)">H</span>
<br>
<span class="gradientizer-done" style="color:rgb(109,109,109)">l</span>
</p>


基本上,revert函数旨在将所有gradientizer-done类都更改为text,也就是说,在$(".grad2").revert()上运行revert时,我希望得到以下结果:

<p class="grad2" one="ffffff" second="000000">
 H<br>l</p>


但是我发现<p></p>没有变化

最佳答案

您已经在style=属性后加上了单引号而不是双引号,而且您忘记了在style属性的末尾加上了双引号。

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

关于javascript - 正则表达式不替换JS中的文本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28540721/

10-09 18:21