繁体   English   中英

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

[英]Highlight matching keywords within a text string with bold font

我正在创建 function ,我将在其中传递字符串和特定文本。特定文本在整个字符串中应为粗体。 我想实现这一点,但无法做到这一点。

输入字符串:-“Hi Hello boy Hello Shyam Hello”

文字:-你好。

Output:- Hello 字在字符串中应该看起来是粗体。

我会这样做:

 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在评论中指出的那样,由于使用正则表达式,因此必须在使用搜索字符串之前对其进行转义。 我使用了这种方法,但可以随意使用任何其他 escaping 实现

<span id="boldit">Bold me</span>

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

 function boldString (fString, bString) { let regex = new RegExp(bString, 'g'); return fString.replace(regex, `<b>${bString}</b>`); } let output = boldString("Hi Hello boy Hello Shyam Hello", "Hello"); console.log(output); document.body.innerHTML = output;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM