![](/img/trans.png)
[英]Highlight only matching text within a string (JQuery/Javascript)
[英]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.