使用javascript replace替换p标签中的所有字符

时间:2013-03-28 18:19:01

标签: javascript jquery replace

我的数据显示在我的网站上,来自XML Feed。不幸的是,在XML feed中,所有者使用了严重的重音:`而不是叛逆:'

我正在使用以下javascript尝试用撇号替换严重重音,但它仅适用于内容中的第一个重音符号。如何调整代码以使其影响p标签内的所有重音符号。

<script type="text/javascript">
    $("p").each(function() {
    var text = $(this).text();
    text = text.replace("`", "'");
    $(this).text(text);
    });
   </script>

4 个答案:

答案 0 :(得分:5)

使用带有“global”(g)标志的正则表达式:

text = text.replace(/`/g, "'");

当您为第一个参数使用字符串时,只替换第一个匹配项(如您所发现的那样)。使用g标志,将替换所有匹配项。 (显然要小心,如果你使用正则表达式中特殊的任何字符,一定要逃避它们。例如,如果你想要替换所有[字符,你需要一个\[之前逃避它,否则它在正则表达式中具有特殊含义。)

另请参阅Ricardo's note关于使用将函数直接传递给text而不是使用each的功能,例如:

<script type="text/javascript">
    $("p").text(function(index, text) {
        return text.replace(/`/g, "'");
    });
</script>

答案 1 :(得分:1)

您不需要each

$('p').text(function(i, text) {
    return text.replace(/\`/g, "'");
});

答案 2 :(得分:0)

您需要使用正则表达式 - 例如:

text = text.replace(/`/gi, "'");

常规替换仅替换第一个实例。

答案 3 :(得分:0)

你必须使用贪婪的正则表达式:

text = text.replace(/`/g, "'");