0

contenteditable div内の一連の単語のすべての一致を見つける次のJavascript関数があります:

var words = ['oele', 'geel', 'politie', 'foo bar'];

function markWords() {
    var html = div.html().replace(/<\/?strong>/gi, ''),
        text = html.replace(/<[^>]+>/g, ' ').replace(/\s+/g, ' '),
        exp;
    $.each(words, function(i, word) {
        exp = new RegExp('\\b(' + word + ')\\b', 'gi');
        html = html.replace(exp, function(m) {
console.log('WORD MATCH:', m);
            return '<strong>' + m + '</strong>';
        });
    });
    //html = html.replace('&nbsp;', ' ').replace(/\s+/g, ' ');
    div.html(html);
}

アットマークで始まる場合にのみ、これらすべての単語をマークするように変更するにはどうすればよい@ですか? たとえば@foo bar、 などと一致する必要があります。

ライブフィドル

4

1 に答える 1

1

変えたら

exp = new RegExp('\\b(' + word + ')\\b', 'gi');

exp = new RegExp('@\\b(' + word + ')\\b', 'gi');

@politieまたはのような内容に一致し@foo barます。

于 2013-05-09T13:19:33.073 に答える