繁体   English   中英

截断Javascript中的字符串

[英]Truncate a String in Javascript

我正在尝试完成以下任务:

如果字符串(第一个参数)长于给定的最大字符串长度(第二个参数),则将其截断。 返回以...结尾的字符串。

请注意,将三个点插入末尾将增加字符串长度。

但是,如果给定的最大字符串长度num小于或等于3,则在确定截断的字符串时,三个点的相加不会增加字符串的长度。

如果我的num> 2,我拥有的代码将仅通过测试,否则它将失败。

function truncateString(str, num) {
  // Clear out that junk in your trunk
  var trunString = "";
  if (str.length > num) {
  trunString = str.slice(0, (num -3)) + "...";
    return trunString;
  }
  return str;
}

truncateString("A-", 1);

找到了一个解决方案:

var trunString = "";
  if (str.length > num && num >= 4 ) {
  trunString = str.slice(0, (num - 3)) + "...";
    return trunString;
     }
  else if (str.length > num && num <= 3) {
    trunString = str.slice(0, (num)) + "...";
    return trunString;
  }

您可以使用条件(三元)运算符 ?:

 function truncateString(str, num) { return str.length > num ? str.slice(0, num > 3 ? num - 3 : num) + "..." : str; } console.log(truncateString("Abcdefghijk", 5)); console.log(truncateString("A-", 1)); console.log(truncateString("Alpha", 5)); console.log(truncateString("Beta", 5)); console.log(truncateString("Epsilon", 3)); 

function truncateString(str, num) {
  // clear out that junk in your trunk
  var trunString = '';
  if (str.length && str.length > num) {
    trunString = str.slice(0, num - 1) + '&hellip;';
    return trunString;
  }
  return str;
}

truncateString("A-", 1);

PS:也请阅读@techfoobar注释,使用&hellip HTML实体会有所帮助...

这是我的解决方案,希望对您有所帮助

   function truncate(str, num) {
      // Clear out that junk in your trunk
      var newStr;
      if(num>3&&num<str.length){
        newStr=str.slice(0,num-3)+"...";
      }else if(num>=str.length){
        newStr=str;
      }else{
        newStr=str.slice(0,num)+"...";
      }
      return newStr;
    }

    truncate("A-tisket a-tasket A green and yellow basket", "A-tisket a-tasket A green and yellow basket".length);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM