在文本中保留撇号

Keeping apostrophes in the text

本文关键字:保留 文本      更新时间:2023-09-26

我的JS 中有以下函数

var p = $('.page p');
    p.html(function(index, oldHtml) {
        return oldHtml.replace(/'b('w+?)'b/g, '<span class="word">$1</span>')
    });

这把段落中的每一个字都分解了。然而,有撇号的单词(例如不要、克雷格)会被分成两部分(例如不要和t)

我如何修改代码以使这些单词完整并保留在撇号中?

感谢

您尝试过吗:

var p = $('.page p');
p.html(function(index, oldHtml) {
  console.log(oldHtml);
  return oldHtml.replace(/(['w']+)/g, '<span class="word">$1</span>');
  
});
.word {
  background-color: yellow;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="page">
  <p>I'm so happy that I can't stop jumping up and down.</p>
  </div>

如果你想简单地将字符串分成单词,你可以在空格处拆分,然后再次连接。。。

$('.page p').each(function(){
  var p = $(this);
  var t = '<span class="word">' 
        + p.html().split(' ').join('</span> <span class="word">')
        + '</span>';
  p.html(t);
});

当然,这取决于你要处理的字符串类型,但对于很多情况来说,这应该是足够基本的。