javascript - 使用 JS/RegExp 进行多次替换

标签 javascript jquery html regex

出现以下问题:替换按预期工作但是:所有发现都替换为第一个发现。 (以下代码示例)。

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

示例:

“Finding finds a fine fish”搜索“fin”将是“findling finds a fine fish”。

这意味着:在某些情况下,大小写会出错。哪里错了?

最佳答案

试试这个:

search = new RegExp($(target).val(), 'gi');
newCityString = newCityString.replace(search, function(match) {
  return '<span class="hl" style="background-color:yellow">' + match + '</span>';
});

Here 是工作代码。

关于javascript - 使用 JS/RegExp 进行多次替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8433057/

相关文章:

javascript - 我可以在隐藏字段中使用模糊吗,jquery

javascript - 只有一个我的 jQuery 对话框显示。我如何让它们全部显示出来?

javascript - 如何正确使用javascript条件?

javascript - 从 javascript 选择选项

python - 如何在某些文本之前将 XPath 写入文本?

javascript - openjscad - Javascript向量旋转以按向量旋转

javascript - 权威指南 (6ed) 错误?

c# - 如何在sql server中存储和检索密码?

jquery - 如何根据 src 属性使用 Jquery 检查 DOM 中是否存在图像元素?

html - 如何使用 bootstrap 或 Css 在局部 View 中排列此 DIV?