2013-05-09 77 views
-1

我有以下的JavaScript函数找到CONTENTEDITABLE DIV中一组字的所有匹配:查找以@符号开头的词

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

如何修改它,这样它标志着所有这些词,只有在他们以@的号码开头的情况下?例如,如果你改变

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

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

它会匹配@politie@foo bar内容应该匹配@foo bar

Live fiddle

回答

1

+1

那是你打算把'@'放在哪里?请记住'\'在字符串文字中有它自己的含义。 – 2013-05-09 13:23:04

+0

不工作.... – enb081 2013-05-09 13:23:15

+2

@squint这是一个错字,现在修复! – 2013-05-09 13:23:46

相关问题