我怎样才能使用Javascript创建一个函数来修剪作为参数传递的字符串到指定的长度,也作为参数传递。例如:
var string = "this is a string";
var length = 6;
var trimmedString = trimFunction(length, string);
// trimmedString should be:
// "this is"
有人有想法吗?我听说过使用子字符串,但不太明白。
答案 0 :(得分:258)
为什么不使用substring ... string.substring(0, 7);
第一个参数(0)是起点。第二个参数(7)是结束点(不包括)。 More info here.
var string = "this is a string";
var length = 7;
var trimmedString = string.substring(0, length);
答案 1 :(得分:11)
我建议使用扩展代码整洁。 请注意,扩展内部对象原型可能会使依赖它们的库变得混乱。
String.prototype.trimEllip = function (length) {
return this.length > length ? this.substring(0, length) + "..." : this;
}
并使用它:
var stringObject= 'this is a verrrryyyyyyyyyyyyyyyyyyyyyyyyyyyyylllooooooooooooonggggggggggggsssssssssssssttttttttttrrrrrrrrriiiiiiiiiiinnnnnnnnnnnnggggggggg';
stringObject.trimEllip(25)
答案 2 :(得分:7)
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/substr
来自链接:
string.substr(start[, length])
答案 3 :(得分:1)
来晚了...我不得不回应。这是最简单的方法。
// JavaScript
function fixedSize_JS(value, size) {
return value.padEnd(size).substring(0, size);
}
// JavaScript (Alt)
var fixedSize_JSAlt = function(value, size) {
return value.padEnd(size).substring(0, size);
}
// Prototype (preferred)
String.prototype.fixedSize = function(size) {
return this.padEnd(size).substring(0, size);
}
// Overloaded Prototype
function fixedSize(value, size) {
return value.fixedSize(size);
}
// usage
console.log('Old school JS -> "' + fixedSize_JS('test (30 characters)', 30) + '"');
console.log('Semi-Old school JS -> "' + fixedSize_JSAlt('test (10 characters)', 10) + '"');
console.log('Prototypes (Preferred) -> "' + 'test (25 characters)'.fixedSize(25) + '"');
console.log('Overloaded Prototype (Legacy support) -> "' + fixedSize('test (15 characters)', 15) + '"');
一步一步。 .padEnd-保证字符串的长度
“ padEnd()方法用给定的字符串(如果需要,重复)填充当前字符串,以使结果字符串达到给定的长度。从当前字符串的结尾(右侧)开始填充。这个交互式示例存储在GitHub存储库中。” 来源:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
.substring-限制所需的长度
如果选择添加椭圆,请将其附加到输出中。
我给出了4个常见JavaScript使用示例。我强烈建议将String原型与Overloading一起使用以支持旧版。它使以后实现和更改变得更加容易。
答案 4 :(得分:0)
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...
答案 5 :(得分:0)
我认为您应该使用此代码:-)
// sample string
const param= "Hi you know anybody like pizaa";
// You can change limit parameter(up to you)
const checkTitle = (str, limit = 17) => {
var newTitle = [];
if (param.length >= limit) {
param.split(" ").reduce((acc, cur) => {
if (acc + cur.length <= limit) {
newTitle.push(cur);
}
return acc + cur.length;
}, 0);
return `${newTitle.join(" ")} ...`;
}
return param;
};
console.log(checkTitle(str));
// result : Hi you know anybody ...
答案 6 :(得分:0)
另一个建议,删除任何尾随空白
limitStrLength = (text, max_length) => {
if(text.length > max_length - 3){
return text.substring(0, max_length).trimEnd() + "..."
}
else{
return text
}
答案 7 :(得分:0)
有几种方法可以做到这一点
let description = "your test description your test description your test description";
let finalDesc = shortMe(description, length);
function finalDesc(str, length){
// return str.slice(0,length);
// return str.substr(0, length);
// return str.substring(0, length);
}
<块引用>
您也可以修改此函数以进入字符串之间。