如何确保当我的省略号添加到lastindexof空格时,它还会在添加之前检查其字母,而不是特殊字符

时间:2013-06-01 18:50:02

标签: javascript string ellipsis

代码如下所示:

 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等等)的字母字符,而且没有特殊字符。

感谢任何形式的帮助

1 个答案:

答案 0 :(得分: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) + "...";
}

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