この場合、正規表現を使用する必要はないと思います。
jQuery は、仕事を成し遂げるための十分なツールを提供します。
一部のリンク プレースホルダーで「検索と置換」機能を実現する方法を次に示します。
次の HTML を考えると -
<div class="details">
<div class="series"><a href="my_cool_page.php">text</a></div>
<fb:comments-count href="[PAGEURL]"></fb:comments-count>
</div>
<div class="details">
<div class="series"><a href="awseome_content.php">text</a></div>
<fb:comments-count href="[PAGEURL]"></fb:comments-count>
</div>
<div class="details">
<div class="series"><a href="interesting_stuff.php">text</a></div>
<fb:comments-count href="[PAGEURL]"></fb:comments-count>
</div>
このjQueryはトリックを行います-
$(function(){
// this grabs all the div elements with the class "details"
$("div.details").each(function(index,elem){
// within each details <div>, we look for an <a> element, and
// we save its href value in currentURL
var currentURL = $(this).find('div.series > a').attr('href');
// again within the details <div>, we search for any element who's href
// property contains [PAGEURL] and replace is with the value
// we got from the series <a> tag.
$(this).find('*[href*="[PAGEURL]"]').attr('href',currentURL);
});
});
最終的に望ましい結果は次のようになります -
<div class="details">
<div class="series"><a href="my_cool_page.php">text</a></div>
<fb:comments-count href="my_cool_page.php"></fb:comments-count>
</div>
<div class="details">
<div class="series"><a href="awseome_content.php">text</a></div>
<fb:comments-count href="awseome_content.php"></fb:comments-count>
</div>
<div class="details">
<div class="series"><a href="interesting_stuff.php">text</a></div>
<fb:comments-count href="interesting_stuff.php"></fb:comments-count>
</div>
あなたの質問から実際の HTML に 1 つの変更を加えました。href
プロパティ (およびそのプロパティのすべてのプロパティ) の値は、常に引用符で囲む必要があります。
<fb:comments-count href=
" [PAGEURL]
"></fb:comments-count>