2013-03-22 62 views
0

數組包含以下元素 1. ABC 2的每次出現DEF 3. GHI如何與每個替換在div文本數組元素

DIV文本

this is abc - def some text 

欲repalce每個與<p> abc</p>發生那樣 所以最後的字符串將如下所示。

this is <p>abc</p> - <p>def</p> some text 

我有一個Array emements。我必須在div中添加一些文本。我想用正則表達式替換每個arrary元素與div文本沒有循環。 我做了類似下面用兩個approiaches

Approaach#1使用grep

jQuery.grep(Words, function (val) { 
    if (val != null && val != '') { 
     Str = Str.replace(val, "<span class='abc'>" + val + "</span>"); 
    } 
}); 

方法#2使用循環。

$.each(Words, function (keyIndex, val) { 
    if (val != null && val != '') 
     Str = Str.replace(val, "<span class='abc'>" + val + "</span>"); 
}); 
+1

和問題是什麼? – 2013-03-22 06:12:49

回答

1

什麼

var string = 'this is abc - def some text '; 
var array = ['abc', 'def', 'ghi']; 

var regex = new RegExp('\\b' + array.join('\\b|\\b') + '\\b', 'g'); 

var as =string.replace(regex, function(a, b){ 
    return '<p>'+a+'</p'; 
}); 
console.log(as) 

演示:Fiddle

+0

請解釋'var regex = new RegExp('\\ b'+ array.join('\\ b | \\ b')+'\\ b','g');'... – SMC 2013-03-22 06:27:52

+0

我們正在創建帶有數組組件的正則表達式,在這種情況下,創建正則表達式'/ \ babc \ b | \ bdef \ b | \ bghi \ b/g'。如果任何出現ex'abc'的空格或其他單詞字符分隔的匹配項將會匹配 – 2013-03-22 06:35:49

+0

解決方案在[this](http://jsfiddle.net/arunpjohny/68Jrc/1/)中工作 – 2013-03-22 06:36:06

相關問題