0

配列には次の要素が含まれます 1. abc 2. def 3. ghi

分割テキスト

this is abc - def some text 

各出現をそのように置き換えたい<p> abc</p>ので、最終的な文字列は以下のようになります。

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

私は配列要素を持っています。div にいくつかのテキストが必要です。ループなしの正規表現を使用して、arrary 要素の各オカレンスを div テキストに置き換えたいと考えています。2つのアプローチを使用して、以下のようにしました

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

1 に答える 1

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)

デモ:フィドル

于 2013-03-22T06:15:55.027 に答える