基于各种用户输入,我们将一个单词数组放入隐藏的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”] ......等等。
答案 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>');
分割应该将术语字符串转换为包含单个单词的数组,在示例中,我将其编码为逗号分割,可选择用空格或仅用空格包围。