it-swarm.cn

如何在使用Javascript中将字符串修剪为ň个字符?

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

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

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

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

120
user825286

为什么不使用substring ... string.substring(0, 7);第一个参数(0)是起点。第二个参数(7)是结束点(不包括)。 更多信息在这里。

var string = "this is a string";
var length = 7;
var trimmedString = string.substring(0, length);
257
Will

复制 Will的 评论答案,因为我发现它很有用:

var string = "this is a string";
var length = 20;
var trimmedString = string.length > length ? 
                    string.substring(0, length - 3) + "..." : 
                    string;

谢谢威尔。

对于任何关心的人来说都是一个小问题 https://jsfiddle.net/t354gw7e/ :)

34
Jon Lauridsen

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

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

并使用它像:

var stringObject= 'this is a verrrryyyyyyyyyyyyyyyyyyyyyyyyyyyyylllooooooooooooonggggggggggggsssssssssssssttttttttttrrrrrrrrriiiiiiiiiiinnnnnnnnnnnnggggggggg';
stringObject.trimEllip(25)
10
student
7
kendaleiv

晚了......我不得不回应。这是最简单的方法。

// 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原型来获得遗留支持。它使以后更容易实现和更改。

1
Matthew Egan