1
所以我目前的HTML看起來像Javascript匹配字符串中的多個匹配項?
<p class="comment-post-text">@333<br /> @44<br />@564</p>
我試圖建立這樣
@333 @44 @564
鏈接但是我的結果是
@333 @333 @333
和我使用正則表達式來驗證一個數字是否在@
符號之後,將文本轉換爲鏈接並鏈接回下一篇文章的散列。這是一個或多或少的報價系統。我的問題是,它似乎只匹配我的正則表達式的第一次出現,而不是匹配每個事件。
$('.comment-post-text').each(function(index) {
let text = $(this).text();
let matches = text.match(/@(\d+)/);
if(matches !== null){
console.log(matches);
let newText = replaceAll(text, /@(\d+)/, "<a href = '#pi_" + matches[1] + "'>" + matches[0] + "</a><br/>");
$(this).replaceWith(newText);
}
});
function replaceAll(str, find, replace) {
return str.replace(new RegExp(find, 'g'), replace);
}
的問題是發生在這裏matches[1]
它僅捕獲圖案的第一次出現,從而通過匹配陣列循環將是無用的。有沒有辦法讓匹配數組保持每場匹配?任何幫助不勝感激。
用'replaceAll'替換'replace',它的功能非常完美!謝謝。 – Tony
@Tony:刷新頁面,你會明白'replaceAll'方法不是有用的*(因爲它只是模式中的一個標誌)* –
替換不適用於我,我得到'replace is not defined' – Tony