我怎么能,使用Javascript,使一个函数,将修剪字符串传递作为参数,到指定的长度,也作为参数传递。例如:

var string = "this is a string";
var length = 6;
var trimmedString = trimFunction(length, string);

// trimmedString should be:
// "this is"

有人有想法吗?我听说过一些关于使用子字符串,但不太明白。


当前回答

小晚…我不得不做出回应。这是最简单的方法。

// 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 -限制你需要的长度

如果选择添加省略号,请将它们附加到输出中。

我给出了JavaScript常用用法的4个例子。我强烈建议使用带有重载的String原型来获得遗留支持。这使得以后的实现和更改更加容易。

其他回答

为了代码整洁,我建议使用扩展。 请注意,扩展内部对象原型可能会扰乱依赖于它们的库。

String.prototype.trimEllip = function (length) {
  return this.length > length ? this.substring(0, length) + "..." : this;
}

像这样使用它:

var stringObject= 'this is a verrrryyyyyyyyyyyyyyyyyyyyyyyyyyyyylllooooooooooooonggggggggggggsssssssssssssttttttttttrrrrrrrrriiiiiiiiiiinnnnnnnnnnnnggggggggg';
stringObject.trimEllip(25)

将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/:)

    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...

小晚…我不得不做出回应。这是最简单的方法。

// 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 -限制你需要的长度

如果选择添加省略号,请将它们附加到输出中。

我给出了JavaScript常用用法的4个例子。我强烈建议使用带有重载的String原型来获得遗留支持。这使得以后的实现和更改更加容易。

只是另一个建议,删除任何尾随空白

limitStrLength = (text, max_length) => {
    if(text.length > max_length - 3){
        return text.substring(0, max_length).trimEnd() + "..."
    }
    else{
        return text
    }