2013-05-07 160 views
0

什么是一个很好的JavaScript库,用于在给定字符串中搜索大量名称。JavaScript在字符串中查找名称

例如,给定1000名政治家名单的名单,找到字符串中的每个实例并将其包装在span中。

优先考虑的是不断增加的名称列表,以及确定例如“托尼布莱尔”,“托尼布莱尔三世”之间的差异的准确性。

例如,这样的:

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

变为:

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

这可能是琐碎的循环和'indexOf',但我会很想找到更有效的解决方案,也许从排序数组开始。 – 2013-05-08 00:06:13

回答

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