簡體   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