Javascript 截断没有空格的字符串

Javascript 截断没有空格的字符串,javascript,Javascript,我遇到了一些字符串溢出其容器的问题。当然,我可以使用overflow:hidden,但它看起来并不像我喜欢文本溢出:省略号那样好。然而,对它的跨平台支持充其量是不确定的,我发现现有的解决方案不允许字符串在包含空格时进行包装 因此,我的解决方法是,如果字符串的前N个字符不包含任何空格,则截断Javascript中的字符串。显然,如果用户没有安装正确的字体,或者放大了字体,它将无法正常工作,但是在这种情况下,overflow:hidden将启动,所以我同意 现在我的问题是,我如何才能以尽可能有效的方

我遇到了一些字符串溢出其容器的问题。当然,我可以使用overflow:hidden,但它看起来并不像我喜欢文本溢出:省略号那样好。然而,对它的跨平台支持充其量是不确定的,我发现现有的解决方案不允许字符串在包含空格时进行包装

因此,我的解决方法是,如果字符串的前N个字符不包含任何空格,则截断Javascript中的字符串。显然,如果用户没有安装正确的字体,或者放大了字体,它将无法正常工作,但是在这种情况下,overflow:hidden将启动,所以我同意


现在我的问题是,我如何才能以尽可能有效的方式做到这一点?我是否必须循环遍历前N个字符,看看每个字符是否都是空格,如果没有空格,则执行string.substring(0,N-3),然后在其上附加省略号

不必循环执行简单的“是否有空间”检测:

var shortened = yourstring.substr(0,N);
if (shortened.indexOf(' ') == -1) {
   var shortened = shortened.substr(0, N-3) + '...';
}

你可能想改用lastIndexOf()来获得最右边的空间。如果我没看错的话,这并不重要。字符串中的任何空格都意味着不需要省略号。非常好。我必须添加一个检查,看看字符串是否短于N,但除此之外,工作正常。谢谢有关