javascript - 使用 jquery/regex 替换子字符串中最后一个匹配的字符

标签 javascript jquery string

我知道这个问题类似于 THIS如果被认为重复,我们深表歉意。

我想要实现的结果是检查具有gallery-info的div

$('.gallery-info').each(function() {

});

我设置了一个条件,如果每个 div 的字符数大于 140 个字符,则返回子字符串。 (推特)

$('.gallery-info').each(function() {
  var descLength = 140;
  var str = $(this).text();
  var patt = new RegExp(/[,;.:!()&\s$]/g);

  if (str.length > descLength) {
   $(this).text(str.substr(0, descLength) + "...");
  } 
});

如果

子字符串的最后一个字符与patt var 匹配。 返回子字符串-1并连接“...”

其他

返回子字符串并连接“...”

我对此一直很困惑,我相信我可以在 Vanilla JS 中使用 str.replace() 和 str.charAt() 实现这一点,但我需要在 jQuery 中做到这一点。

最佳答案

我认为用下面的方法更新你的 IF 条件应该可以正常工作。

  if (str.length > descLength) {
        if(patt.test(str[descLength-1])) {
          $(this).text(str.substr(0, descLength-1) + "...");
        } else {
          $(this).text(str.substr(0, descLength) + "...");     
        }
  }

CODEPEN:https://codepen.io/azimjs/pen/mBqjNY

关于javascript - 使用 jquery/regex 替换子字符串中最后一个匹配的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46570055/

相关文章:

javascript - 如何获取ckeditor中所选文本的html源

javascript - JavaScript 中的 document.popledLayer 是什么?

javascript - openlayer 3 捕获移动结束/缩放结束事件

javascript - 在同一端口上运行多个 Node (Express) 应用程序

jquery - 如何使用 underscore.js 中的 throttle

Javascript ajax 调用在动态加载的 HTML 中不起作用

javascript - 如何添加/删除隐藏类

c# - 如何统计某些符号出现的次数?

python - 连接字符串?

Java - 对字符串数组进行排序/按字母顺序排列