如何在Javascript中将字符串修剪为N个字符?

时间:2011-09-18 18:53:59

标签: javascript string trim

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

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

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

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

8 个答案:

答案 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)

答案 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);

}
<块引用>

您也可以修改此函数以进入字符串之间。