Javascript 用粗体突出显示文本字符串中的匹配关键字

Javascript 用粗体突出显示文本字符串中的匹配关键字,javascript,reactjs,Javascript,Reactjs,我正在创建一个函数,在这个函数中我将传递字符串和特定文本。特定文本在整个字符串中应该是粗体的。我想做到这一点,但无法做到这一点 输入字符串:-“你好男孩你好Shyam你好” 文本:-你好 输出:-Hello word的字符串应该是粗体的。我会这样做: 函数escapeRegExp(文本){ 返回文本。替换(/[-[\]{}()*+?,\\^$\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\; }

我正在创建一个函数,在这个函数中我将传递字符串和特定文本。特定文本在整个字符串中应该是粗体的。我想做到这一点,但无法做到这一点

输入字符串:-“你好男孩你好Shyam你好”

文本:-你好

输出:-Hello word的字符串应该是粗体的。

我会这样做:

函数escapeRegExp(文本){
返回文本。替换(/[-[\]{}()*+?,\\^$\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\;
}
函数boldMe(输入,文本){
const regExString=escapeRegExp(文本)
const regex=new RegExp(regExString,'g');
让output=input.replace(regex,`${text}`);
控制台日志(输出);
返回输出;
}
var myDev=document.getElementById('myDiv');
myDev.innerHTML=boldMe(myDev.innerHTML,'Hello')
Hi Hello boy Hello Shyam Hello
Bold me
函数boldme(){
document.getElementById('boldit').style.fontWeight='bold';
}
boldme();
函数boldString(fString,bString){
设regex=newregexp(bString,'g');
返回fString.replace(regex,`${bString}`);
}
让输出=boldString(“你好,男孩你好,Shyam你好”,“你好”);
控制台日志(输出);

document.body.innerHTML=输出你标记了Reactjs,它是相关的吗?你有具体的例子吗?你指的是香草javascript吗?你试过什么?分享一些代码。你可以试试这个-我批准了删除ReactJS标签的建议编辑,因为它看起来不相关;如果您觉得有必要,请随时恢复它。对于所有基于
RegExp
的方法。。。是否有人知道所提供的搜索字符串可能包含空格序列(长度不同)和属于regexp控制字符本身的字符(因此,在将它们提供给
regexp
函数/构造函数之前需要对其进行转义)。此外,这个搜索字符串应该匹配的文本可能包含长度未知的空格序列(因此文本内容也需要在之前进行清理)。嗨,你好,男孩,你好……我收到了这个消息。不渲染..为什么?在哪里渲染,如何渲染?你能显示代码吗?嗨,你好,男孩你好……我得到的是这个而不是粗体的文本。是的,但是你如何在DOM中写回它?您需要使用
.innerHTML
属性。。。这就是为什么我问你如何渲染它,所以你用来显示字符串的代码。。。关于我在OP的帖子上的评论。。。一个简单的字符串,如。。。你好,男孩你好,希扬你好,你好。。。如果只想突出显示
(Hello)
(连同它的括号)确实会导致这样的结果。。。嗨(你好)男孩你好Shyam(你好)((你好))。添加解释将使您的答案非常有用嗨(你好)男孩你好……我得到的是这个而不是粗体文本。@Sharad_kumar我编辑了代码以查看输出。前面您在控制台中看到了输出。虽然这段代码可能会回答这个问题,但提供有关它如何和/或为什么解决问题的其他上下文将提高答案的长期价值。谢谢@leopal
<span id="boldit">Bold me</span>

<script>
  function boldme() {
    document.getElementById('boldit').style.fontWeight = 'bold';
  }
  boldme();
</script>