javascript - 使用粗体突出显示文本字符串中的匹配关键字
问题描述
我正在创建函数,我将在其中传递字符串和特定文本。特定文本在整个字符串中应为粗体。我想实现这一点,但无法做到这一点。
输入字符串:-“Hi Hello boy Hello Shyam Hello”
文字:-你好。
输出:- Hello 单词在 String 中看起来应该是粗体的。
解决方案
我会这样做:
function escapeRegExp(text) {
return text.replace(/[-[\]{}()*+?.,\\^$|#\\s]/g, '\\$&');
}
function boldMe(input, text){
const regExString = escapeRegExp(text)
const regex = new RegExp(regExString, 'g');
let output = input.replace(regex, `<b>${text}</b>`);
console.log(output);
return output;
}
var myDev = document.getElementById('myDiv');
myDev.innerHTML = boldMe(myDev.innerHTML,'Hello');
<div id="myDiv">Hi Hello boy Hello Shyam Hello</div>
编辑:
正如@Peter Seliger在评论中指出的那样,由于使用正则表达式,因此必须在使用搜索字符串之前对其进行转义。我使用了这种方法,但可以随意使用任何其他转义实现
推荐阅读
- php - WooCommerce 为重新计算按钮添加订单管理挂钩
- elixir - Elixir / Phoenix:为什么路由助手需要@conn?
- python - 如何抑制pyinstaller生成的可执行文件窗口中的所有警告
- linq - LINQ 识别连续出现中第一个满足条件的行
- postgresql - PSQL 套接字超时:连接超时错误
- arrays - 我正在学习打字稿为什么定义的数组在这里显示错误?
- zabbix - 如何知道 Zabbix Dashboard 调用的 API?
- sql-server - 如何将对象中的数值转换为要在电子邮件任务中发送的字符串?
- java - JAVA中HttpClient请求的编码类型
- command-line-interface - 错误请求 400 - Freeswitch CLI Oiriginate 连接两个客户端