javascript - 使用数组查找文本并替换为类等于文本的文本周围的链接

标签 javascript jquery regex arrays replace

因此,使用 jQuery,我尝试使用数组来使用数组搜索段落元素,当它找到某些词时,它会将那个词转换为与该类的链接。

我正在尝试使用这个:

jQuery('.story').html(function(i,html) {
    var w = ['ocean','waves','bed', 'swimming'];
    $.each(w,function(i,w) {
        html = html.replace(new RegExp('<a href="" class="' + w + '">' + w + '</a>', 'g'),w[i]);
    });
    return html;
});

jsfiddle

最终结果会变成ocean进入<a href="" class="ocean">ocean</a>

但是好像不行。我也不明白为什么。提前致谢。

m(_ _)m

_|7O

(最终的计划是让这些词在按下时播放特定的 SFX,我将以类(class)为基础,所以当这个词再次出现在故事​​中时,它会播放相同的声音)。

最佳答案

像这样?

var w = ['ocean','waves','bed', 'swimming'],
     reg = new RegExp('(' + w.join('|') + ')','g');

jQuery('.story').html(function(_, curHtml) {
     return curHtml.replace(reg,"<a href='#' class='$1'>$1</a>");
});

Demo

你需要使用html而不是val,并根据所有的词构造正则表达式,这样它们就可以一次匹配,并将匹配的值替换为字符串并使用匹配 token $1

关于javascript - 使用数组查找文本并替换为类等于文本的文本周围的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20059645/

相关文章:

regex - 如何使用RegEx收集多个着陆页URL的信息?

javascript - 按下特定列表的按钮后使用ajax更新特定列表<li>

javascript - jsfiddle : not able to add script with http

jquery - 菜单将打开但不会关闭

javascript - 突出显示从头开始匹配的文本

javascript - 0 :59 to 99:59 or 0 to 99 的正则表达式

javascript - 如何使用以下脚本在单击时显示树结构的元素

javascript - 如何获取视频海报的图像尺寸?

javascript - 将占位符文本添加到表单中的文本字段

jquery - fancybox 有 html 问题