如何在每次出现数组元素时替换Div文本

时间:2013-03-22 05:56:30

标签: jquery asp.net-mvc json asp.net-mvc-3 asp.net-mvc-2

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>");
});

1 个答案:

答案 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