0

代码如下所示:

 function TrimLength(text, maxLength) {
        text = $.trim(text);

        if (text.length > maxLength) {
            text = text.substring(0, maxLength - ellipsis.length)
            return text.substring(0, text.lastIndexOf(" ")) + ellipsis;
        }
        else
            return text;
    }

我遇到的问题是它做了以下事情:

hello world and an...

The curse of the gaming backlog –...

我想确保它改为:

hello world and...

The curse of the gaming backlog...

我想我需要确保有像(a、b、c、d 等)这样的字母字符并且没​​有特殊字符。

任何形式的帮助表示赞赏

4

1 回答 1

0

你可能想从这个开始:

function cutoff(str, maxLen) {
    // no need to cut off
    if(str.length <= maxLen) {
        return str;
    }

    // find the cutoff point
    var oldPos = pos = 0;
    while(pos!==-1 && pos <= maxLen) {
        oldPos = pos;
        pos = str.indexOf(" ",pos) + 1;
    }
    if (pos>maxLen) { pos = oldPos; }
    // return cut off string with ellipsis
    return str.substring(0,pos) + "...";
}

这至少会给你基于单词而不是字母的截止值。如果您需要额外的过滤,您可以添加它,但这会给您一个截止点,例如“游戏积压的诅咒 - ...”,老实说,这看起来并没有错。

于 2013-06-02T02:03:57.877 回答