包含跨度中的变量单词

时间:2012-08-01 17:16:27

标签: javascript jquery

基于各种用户输入,我们将一个单词数组放入隐藏的div(#words)中,然后使用该信息执行函数。

我想做的是检查现有单词的div,即:

terms = $("#words").html();

然后,在页面上其他位置的可见且独立的div(.ocrText)中,仅包含强标记中的单词。

$('.ocrText').each(function() {
  $(this).html($(this).html().replace(/term/g, "<strong>term</strong>"));
});

所以,如果他们搜索“Tallant France”并且我们存储了那个,那么下面的句子:

“Mark Tallant在法国服役。”

会变成:

“在<strong>中标记</strong> Tallant <strong>France</strong>。”

但我不知道如何将该变量注入.replace()

///

编辑:这些术语以这种格式插入到#words div中: [“Tallant”,“France”,“War”] ......等等。

2 个答案:

答案 0 :(得分:0)

$('.ocrText').each(function() {
    var term = 'term'
    var pattern = RegExp(term, 'g')
    $(this).html($(this).html().replace(pattern, "<strong>" + term + "</strong>"));
});

答案 1 :(得分:0)

假设您的单词只包含字母数字字符,您可以构建一个正则表达式,以便一次性搜索所有这些字符:

html = html.replace (
  new RegExp(terms.split(/\s*,\s*|\s+/).join('|'), 'g'), '<strong>$&</strong>');

分割应该将术语字符串转换为包含单个单词的数组,在示例中,我将其编码为逗号分割,可选择用空格或仅用空格包围。