如何使具有#bold字Jquery的特定单词变粗

时间:2018-06-12 08:35:29

标签: jquery

嗨,有一种方法可以将特定文本设为粗体,例如

  

我有这个#boldword,我希望#boldword2这两个像这样大胆。

     

我有,我希望 word2 这两个像这样大胆。

因此,您可以看到第二个示例,我希望前面加粗的每个单词都变为粗体,并且#bold将被删除。

我到目前为止尝试了一些事情



<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>The #boldworld is big and red.</p>
&#13;
if (WBC_HFM_Application_Table.SETTLEMENT_DATE Is Null) Then 'No' Else 'Yes' as Funded 
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

根据我的理解,你有一个你想要粗体的单词列表,其中包含前缀#bold。您想从单词中删除#bold前缀吗?

您需要做的只是在文字中添加.replace('#bold', '')

修改

根据您的评论,您想要更改正则表达式,以便它匹配以#bold开头的任何字符串并加入它吗?

我使用的模式是(#bold([^\s\.]+)) - 找到以#bold开头的任何单词然后捕获所有内容直到空格或句点([^\s\.]+)。整个批次在括号中的原因是整个字符串被替换。我还将替换字符串从$&更改为$2。区别在于$& is similar to $1,因为它会将整个匹配的字符串(例如#boldworld)放入文本中;虽然$2会放入内部匹配的文本(即([^\s\.]+)中匹配的内容,例如world)。

为了我自己的理智,我还从内部函数中删除了jquery调用,并将其替换为vanilla javascript。

&#13;
&#13;
"use strict";
$.fn.wrapInTag = function() {
  //this = jQuery element
  return this.html(function() {
    //this = dom element
    return this.textContent
               .replace(/(#bold([^\s\.]+))/gi, '<strong>$2</strong>');
  });

};

$('p').wrapInTag();
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>The #boldworld is big and #boldred.</p>
&#13;
&#13;
&#13;