【问题标题】:Find specific word from paragraph从段落中查找特定单词
【发布时间】:2019-04-20 03:04:37
【问题描述】:

我正在从段落中找到一个特定的单词,并希望将其加粗。我已经完成了下面的代码,但它不起作用。

var text = /Lorem/ig;
$('div')
  .filter(function() {
    return text.test($(this).text())
  }).wrap('<strong></strong>');
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has
  survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing
  software like Aldus PageMaker including versions of Lorem Ipsum.</div>

Fiddle Demo

【问题讨论】:

  • 您的 JSFIddle 代码中没有 .test() 方法。
  • 谁能告诉我为什么我的代码不起作用。

标签: javascript jquery filter


【解决方案1】:

lil' plugin created by elclanrs

$.fn.wrapInTag = function(opts) {

   var tag = opts.tag || 'strong'
, words = opts.words || []
, regex = RegExp(words.join('|'), 'gi') // case insensitive
, replacement = '<'+ tag +'>Lorem</'+ tag +'>';

 return this.html(function() {
   return $(this).text().replace(regex, replacement);
  });};

// Usage
$('div').wrapInTag({
  tag: 'strong',
  words: ['Lorem']   //can be comma seprated like  ['Lorem','ipsum']
});

Working Demo

【讨论】:

  • 我认为您在工作演示中链接了错误的小提琴。
  • 如何使用多个单词...我认为所有单词都将根据代码替换为“Lorem”。
  • 那么,如果您正在寻找逐字替换,这将不起作用。需要修改插件。
  • 请删除此评论//可以用逗号分隔,如 ['Lorem','ipsum']。
【解决方案2】:

您可以使用正则表达式反向引用:

var text=new RegExp('(Lorem)','ig');
$('div').html($('div').html().replace(text, "<strong>$1</strong>"));

【讨论】:

    猜你喜欢
    • 2020-08-18
    • 1970-01-01
    • 2021-07-29
    • 1970-01-01
    • 2013-12-19
    • 2021-06-12
    • 2022-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多