我正在实施代码hightlight包。 当用户输入关键字(不区分大小写)时,我将用链接替换关键字。
例如,
var keyword = 'from';
var keyReg = new RegExp(keyword, 'ig');
hightlight('select * from xxx; select * FROM yyy;'); // "select * <a>from</a> xxx; select * <a>FROM</a> yyy;"
我怎么能这样做?
- 更新---
实际上,我不只是突出显示关键字,而是需要添加关键字的链接。
答案 0 :(得分:2)
您可以使用字符串replace
方法传递第二个参数:replacer function
。有关替换的更多信息,请阅读here
更新:在字边界添加\ b断言位置。
var keyword = 'from';
var keyReg = new RegExp("\\b" + keyword + "\\b", 'ig');
function hightlight(str) {
return str.replace(keyReg, function replacer(match) {
return '<span class="highlight">' + match + '</span>';
});
}
console.log(hightlight('select * from xxx')); // "select * <span class="hightlight">from</span> xxx"
console.log(hightlight('select * FROM xxx')); // "select * <span class="hightlight">FROM</span> xxx"
console.log(hightlight('select * from fromages')); // "select * <span class="highlight">from</span> fromages"
&#13;