2012-08-01 47 views
1

基於各種用戶輸入,我們將一個單詞數組放在隱藏的div(#words)中,然後使用該信息執行功能。在一個範圍中包裝可變詞

我想什麼做的是檢查DIV爲現有詞,即:

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

,然後在頁面(.ocrText)上的其他地方可見和獨立的DIV,包只有那些話在一個強大的標籤。

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

所以,如果他們會搜索「Tallant法國」我們存儲的,那麼下面的句子:「馬克Tallant在法國擔任」

將成爲:

「馬克<strong> Tallant </strong><strong>France</strong>服務。」

但我不知道如何注入該變量中.replace()

///

編輯:項插入到這個格式#words DIV: [ 「Tallant」,「法國」,「戰爭」] ...等等。

回答

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

假設你的話只包含字母數字的字符,你可以構造一個正則表達式來一次搜索所有的人如下:

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

分割應的條款字符串轉換爲包含一個數組在這個例子中,我將它編碼爲在逗號分隔,可選地由空白或只是空白包圍。

+0

嗯,這是行不通的。這些條款以這種格式插入到#words div中:[「Tallant」,「France」,「War」] ...等等。 – brianrhea 2012-08-01 19:41:37

+0

好的,這與JSON格式兼容,使用「JSON.parse(terms)」代替「terms.split(...)」 – HBP 2012-08-02 00:15:51