查找引号之间的字符串,将 Class添加到 this.string 并隐藏引号

Find string between quotes, addClass to this.string and hide quotes

提问人:Pierre Wacquier 提问时间:2/8/2019 最后编辑:Mark SchultheissPierre Wacquier 更新时间:2/9/2019 访问量:28

问:

所以一切都在问题中。

在 RSS Flux 中,我有一些短信。我需要在引号之间找到一个字符串。

示例:

jQuery(document).ready(function() {
  jQuery("div.esg-bottom").each(function() {
    var jQuery(this).text() = s.match(/"(.*?)"/);
    jQuery(this).text(): addClass('toto');
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<div class="esg-bottom eg-post-590 eg-mouveat-fb-element-2">Santé"Les additifs, un réel problème sanitaire"Voici une petite vidéo tournée dans des écoles en Australie. L'Australie pays du paradoxe avec un taux d'obésité record et des mauvaises habitudes alimentaires...</div>

但可以肯定的是,它失败了;)

任何帮助都会很棒

jquery 字符串 引号

评论

0赞 Taplar 2/8/2019
不能将类添加到文本节点。你需要把它放在一个跨度或其他东西上,并在上面放一个类
0赞 Pierre Wacquier 2/8/2019
<div class=“esg-bottom eg-post-590 eg-mouveat-fb-element-2”>Santé“Les additifs, un réel problème sanitaire”Voici une petite vidéo tournée dans des écoles en Australie.L'Australie pays du paradoxe avec un taux d'obésité record et des mauvaises habitudes alimentaires...</格>
0赞 Pierre Wacquier 2/8/2019
跨度还可以,但如何“捕捉”特殊的字符串甜菜报价?

答:

-1赞 Taplar 2/8/2019 #1

您可以使用 replace 方法将 span 注入其上的类。

$('#testing').html(function(index, value){
  return value.replace(/"([^"]+)"/, function(_, match1){
    return "<span class='toto'>"+ match1 +"</span>";
  });
});
.toto { color: red; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="testing">
Santé"Les additifs, un réel problème sanitaire"Voici une petite vidéo tournée dans des écoles en Australie". L'Australie pays du paradoxe avec un taux d'obésité record et des mauvaises habitudes alimentaires... 
</div>

评论

0赞 Mark Schultheiss 2/9/2019
这并不能回答所提出的问题,即对于选择器"div.esg-bottom"
0赞 Taplar 2/9/2019
@MarkSchultheiss 将 id 更改为类,更改选择器以匹配,这两种方法都适用于此逻辑。
0赞 Mark Schultheiss 2/9/2019 #2

把它包装在一个也许有那个类的跨度中?

$(function() {
  $("div.esg-bottom").each(function() {
    let t = $(this).text();
    var regex = /(".*\")+/g
    var s = t.replace(regex, function(m) {
      return '<span class="toto">' + m + '</span>';
    });
    $(this).html(s);
  });
});
.toto{color:blue;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<div class="esg-bottom eg-post-590 eg-mouveat-fb-element-2">Santé"Les additifs, un réel problème sanitaire"Voici une petite vidéo tournée dans des écoles en Australie. L'Australie pays du paradoxe avec un taux d'obésité record et des mauvaises habitudes alimentaires...outside quotes</div>
<div class="esg-bottom eg-post-590 eg-mouveat-fb-element-2">Cheese "I like blue cheese. " my cheese is not outside quotes</div>

评论

0赞 Pierre Wacquier 2/9/2019
谢谢大家,您的解决方案有效,但第二页的最后一个问题:我有 <p class=“cff-post-text”><span class=“cff-text” data-color=“”><b style=“font-size: 22px”>“Les additifs, un réel problème sanitaire”</b><br> <br> Voici une petite vidéo tournée dans des écoles en Australie.L'Australie ...</span><span class=“cff-expand” style=“display: inline;”>...<a href=“#” style=“color: #”><span class=“cff-more”>查看更多</span><span class=“cff-less”>少看</span></a></span></p> 我需要抑制来自 <b>“mytitleinaquote”</b> 的引号,但不知道该怎么做......谢谢你的帮助
0赞 Mark Schultheiss 2/9/2019
这是一个新问题。请提出一个新问题,而不是改变原来的问题上下文和要求