Array包含以下元素 abc 2. def 3. ghi
div text
this is abc - def some text
我想用<p> abc</p>
这样重复每一次出现
所以最后的字符串将如下所示。
this is <p>abc</p> - <p>def</p> some text
我有一个Array emements。我必须在div中使用一些文本。我想用正则表达式替换div文本的每个ocurance而没有循环。 我在下面使用了两个方法
使用Grep认可#1
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>");
});
答案 0 :(得分: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