我怎么能,使用Javascript,使一个函数,将修剪字符串传递作为参数,到指定的长度,也作为参数传递。例如:
var string = "this is a string";
var length = 6;
var trimmedString = trimFunction(length, string);
// trimmedString should be:
// "this is"
有人有想法吗?我听说过一些关于使用子字符串,但不太明白。
我怎么能,使用Javascript,使一个函数,将修剪字符串传递作为参数,到指定的长度,也作为参数传递。例如:
var string = "this is a string";
var length = 6;
var trimmedString = trimFunction(length, string);
// trimmedString should be:
// "this is"
有人有想法吗?我听说过一些关于使用子字符串,但不太明白。
当前回答
let trimString = function (string, length) {
return string.length > length ?
string.substring(0, length) + '...' :
string;
};
用例,
let string = 'How to trim a string to N chars in Javascript';
trimString(string, 20);
//How to trim a string...
其他回答
为什么不直接使用substring…字符串。substring(0、7);第一个参数(0)是起点。第二个参数(7)是结束点(独占)。更多信息请点击这里。
var string = "this is a string";
var length = 7;
var trimmedString = string.substring(0, length);
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/substr
从链接:
string.substr(start[, length])
将Will的评论复制到一个答案中,因为我发现它很有用:
var string = "this is a string";
var length = 20;
var trimmedString = string.length > length ?
string.substring(0, length - 3) + "..." :
string;
谢谢。
和一个jsfiddle为任何人谁关心https://jsfiddle.net/t354gw7e/:)
只是另一个建议,删除任何尾随空白
limitStrLength = (text, max_length) => {
if(text.length > max_length - 3){
return text.substring(0, max_length).trimEnd() + "..."
}
else{
return text
}
为了代码整洁,我建议使用扩展。 请注意,扩展内部对象原型可能会扰乱依赖于它们的库。
String.prototype.trimEllip = function (length) {
return this.length > length ? this.substring(0, length) + "..." : this;
}
像这样使用它:
var stringObject= 'this is a verrrryyyyyyyyyyyyyyyyyyyyyyyyyyyyylllooooooooooooonggggggggggggsssssssssssssttttttttttrrrrrrrrriiiiiiiiiiinnnnnnnnnnnnggggggggg';
stringObject.trimEllip(25)