【问题标题】:How can I truncate result titles?如何截断结果标题?
【发布时间】:2012-05-06 20:51:21
【问题描述】:

我正在使用 soundclouds api 来回显曲目信息,但我想将每个曲目标题结果显示的字符数限制为 24 个字符?我还希望能够将曲目标题和艺术家标题都设置为大写文本(首字母大写其余小写)

谢谢

 <li><a href="' + track.permalink_url +'">Track: ' + track.title + '<BR>Artist: '+ track.user.username + '</a></li>'

【问题讨论】:

    标签: javascript string


    【解决方案1】:

    试试这个:

    function formatter(str) {
        if(str.length < 24) {
          return str;
        } else {
          return str.charAt(0).toUpperCase() + str.substr(1,23) + '..';
        }   
    }
    
    <li><a href="' + track.permalink_url +'">Track: ' + formatter(track.title) + '<BR>Artist: '+ formatter(track.user.username) + '</a></li>'
    

    DEMO

    【讨论】:

    • 谢谢,但我不想要大写,我需要大写,所以只有第一个字母是大写?还有如何在标题末尾添加“...”?
    【解决方案2】:

    对于您问题的第 1 部分,请查看 substr method。这是所有 JavaScript String 对象的标准方法。

    对于第 2 部分,大写,请查看this question

    【讨论】:

      【解决方案3】:

      可以提前准备短标题,先取子串,确保小写:

      var shortTitle = track.title.substr(0,24).toLowerCase();
      

      然后使用以下将第一个字母大写并使用其余小写字符串,添加...

      // ... HTML ouput by JS ...
      
      document.write(shortTitle.charAt(0).toUpperCase() + shortTitle.slice(1));
      
      if (shortTitle.length > 24)
          document.write('...');
      
      // ... HTML output by JS ...
      

      Here in an example.

      您可以为作者重复这些步骤。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-01
        • 1970-01-01
        • 2013-09-24
        相关资源
        最近更新 更多