0

XML フィードから自分の Web サイトにデータを表示しています。残念なことに、XML フィードでは、所有者がアポストロフィの代わりに「グレイブ アクセント」を使用しています。

次の JavaScript を使用して、グレイブ アクセントをアポストロフィに置き換えようとしていますが、コンテンツの最初のグレイブ アクセントに対してのみ機能します。p タグ内のすべての重アクセントに影響を与えるようにコードを調整するにはどうすればよいですか。

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

4 に答える 4

5

「グローバル」( g) フラグで正規表現を使用します。

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

最初の引数に文字列を使用すると、最初の一致のみが置き換えられます(発見したように)。フラグを使用するgと、すべての一致が置き換えられます。(正規表現で特殊な文字を使用している場合は、必ずエスケープするように注意してください。たとえば、すべての[文字を置き換えたい場合は、エスケープするためにの\前にが必要です。[正規表現で意味します。)

を使用する代わりに関数を直接渡す機能の使用に関するリカルドのメモも参照してください。texteach

<script type="text/javascript">
    $("p").text(function(index, text) {
        return text.replace(/`/g, "'");
    });
</script>
于 2013-03-28T18:19:58.797 に答える
1

あなたは必要ありませんeach

$('p').text(function(i, text) {
    return text.replace(/\`/g, "'");
});
于 2013-03-28T18:21:12.240 に答える
0

次のような正規表現を使用する必要があります。

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

通常の置換では、最初のインスタンスのみが置換されます。

于 2013-03-28T18:21:21.283 に答える
0

貪欲な正規表現を使用する必要があります。

text = text.replace(/`/g, "'");
于 2013-03-28T18:22:41.353 に答える