我的问题是我想做这样的事情:
Javascript vaja => <b>Ja</b>vascript va<b>ja</b>
即我有一个查询字符串(ja),我想用更大的字符串(Javascript vaja)替换该查询字符串的所有出现(不区分大小写)。
我现在最接近的解决方案是:
"Javascript vaja".replace(/ja/gi, '<b>ja</b>');
给了我:
"<b>ja</b>vascript va<b>ja</b>"
但我需要的是:
Javascript vaja => <b>Ja</b>vascript va<b>ja</b>
我想到的一个解决方案是在替换之前保留大写字母的索引,然后重新替换它们。但这太过于苛刻了。 我很确定我不是第一个尝试这个的人,并且非常确定隐藏在某处的优雅和简单的解决方案。
答案 0 :(得分:19)
只需使用捕获组:
"Javascript vaja".replace(/(ja)/gi, '<b>$1</b>');
修改:详细了解如何捕获群组here.