我的数据显示在我的网站上,来自XML Feed。不幸的是,在XML feed中,所有者使用了严重的重音:`而不是叛逆:'
我正在使用以下javascript尝试用撇号替换严重重音,但它仅适用于内容中的第一个重音符号。如何调整代码以使其影响p标签内的所有重音符号。
<script type="text/javascript">
$("p").each(function() {
var text = $(this).text();
text = text.replace("`", "'");
$(this).text(text);
});
</script>
答案 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, "'");