发生以下问题:替换按预期工作但是:所有发现都替换为第一个发现。 (代码如下)。
target =包含待突出显示字符串的输入字段; newCityString = html代码,应该替换
/**
* Highlighting for Search results (just demo)
* TODO: This needs some work to replace the case-correct texts
*/
search = new RegExp( $(target).val() , 'gi' );
matches = search.exec(newCityString);
for( match in matches ) {
_this = new RegExp( matches[ match ], 'gi');
newCityString = newCityString.replace(
_this,
('<span class="hl" style="background-color:yellow">' + matches[ match ] + '</span>')
);
};
示例:
“Findling发现一条精致的鱼”,寻找“鳍”将是“找到一条好鱼”。
这意味着:在某些情况下,大写将是错误的。哪里出错了?
答案 0 :(得分:0)
试试这个:
search = new RegExp($(target).val(), 'gi');
newCityString = newCityString.replace(search, function(match) {
return '<span class="hl" style="background-color:yellow">' + match + '</span>';
});
Here 是工作代码。
答案 1 :(得分:-1)
使用:
search = new RegExp( $(target).val() , 'gi' );
newCityString = newCityString.replace(search,function(substr){
return '<span class="hl" style="background-color:yellow">' + substr + '</span>';
});