我有一个字符串变量,看起来像这样:
ÅretsupplagaavStorsjöcupen,en fotbollsturneringiÖstersundför ungdomar,fick en tristavrundningnäruhängare能到ett norskt pojklaganklagadesförtieha farit ut i rasistiska och könsordskryddadetillmälenpotspelareimotståndarlag。
当我的javascript被执行时,它将字符串转换为:
ÅretsupplagaavStorsjöcupen,en fotbollsturneringiÖstersundför ungdomar,fick en tristavrundningnäruhängare能到ett norskt pojklag ......
如果你看到三个“......”,我就不想拥有一个空间。
我希望它是:
... pojklag
我的javascript看起来像这样:
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;
}
$(document).ready(function () {
$(".text").each(function () {
var text = $(this).text();
$(this).text(TrimLength(text, 150));
});
如何确保删除空间?
感谢任何形式的帮助。
答案 0 :(得分:5)
只需更改此行:
return text.substring(0, text.lastIndexOf(" ") - 1) + ellipsis;
您的代码正在查找最后一个空格并删除其后的所有内容。只需将传递给substring
的长度减去一个字符,您也将删除最后一个空格。
答案 1 :(得分:1)
我会这样做:
function trimLength( text, maxLength ) {
text = $.trim( text );
if( text.length <= maxLength )
return text;
return text
.slice( 0, maxLength - ellipsis.length )
.replace( /\s+\S*$/, '' )
+ ellipsis;
}
这应该处理其他注释中提到的所有情况,包括一个没有空格的字符串,以及一个连续多个空格的字符串。
另外,作为一个建议,我冒昧地将函数名称从TrimLength
更改为trimLength
,因为它不是构造函数。惯用JavaScript以大写字母和其他函数以及带小写字母的变量开始构造函数名称。