JavaScript find names in strings

﹥>﹥吖頭↗ 提交于 2019-12-25 00:17:46

问题


What's a good JavaScript library for searching a given string for a large list of names.

For example, given a list of 1000 politicians names find every instance in a string and wrap it in a span.

Priorities are performance with a growing list of names, and accuracy in determining difference between eg, "Tony Blair", "Tony Blair III".

For example, this:

["Tony Blair", "Margaret Thatcher", "Tony Blairite", "Tony Blair III", etc...]
"The best PM after Tony Blair was Margaret Thatcher."

Becomes:

"The best PM after <span class="mp">Tony Blair</span> was <span class="mp">Margaret Thatcher</span>."

回答1:


var names = ['foo','bar'];
var content = "this foo is bar foobar  foo ";
for (var c=0,l=names.length;c<l;c++) {
  var r = new RegExp("\\b("+names[c]+")\\b","gi");
  content = content.replace(r,'<span class="mp">$1</span>');
}


来源:https://stackoverflow.com/questions/16430525/javascript-find-names-in-strings

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!