从文本中删除第一个重复的字符串

问题描述 投票:1回答:1

我想删除第一个重复的月份和年份,我能够删除文本中的最后一个重复的单词(例如,2019年12月30日-31)。所以我想要的输出示例如下所示:2019年12月30日至31日这是我到目前为止的内容

$('.dates p').each(function(){
var string = $(this).text();

var newdatarange = string.split(' ').filter(function(allItems,i,a){
    return i == a.indexOf(allItems);
}).join(' ');

$(this).text(newdatarange);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="dates">
 <p>10 December 2019 - 12 December 2019</p>
 <p>14 December 2019 - 16 December 2019</p>
 <p>20 December 2019 - 22 December 2019</p>
 <p>30 December 2019 - 31 December 2019</p>
</div>
javascript jquery html
1个回答
2
投票

您可以搜索相同的部分并替换字符串。

正则表达式寻找捕获组,稍后再重复。

$('.dates p').each(function() {
    $(this).text($(this).text().replace(/(\D+\s+\d+)(?=.*\1)/, ''));
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="dates">
 <p>10 December 2019 - 12 December 2019</p>
 <p>14 December 2019 - 16 December 2019</p>
 <p>20 December 2019 - 22 December 2019</p>
 <p>30 December 2019 - 31 December 2019</p>
</div>

推荐问答