Как обрезать строку до N символов в Javascript?

Как я могу, используя Javascript, создать функцию, которая будет обрезать строку, переданную в качестве аргумента, до заданной длины, также переданной в качестве аргумента. Например:

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

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

У кого-нибудь есть идеи? Я что-то слышал об использовании подстроки, но не совсем понял.

Ответ 1

Почему бы просто не использовать подстроку... string.substring(0, 7); Первым аргументом (0) является отправная точка. Второй аргумент (7) - конечная точка (исключение). Подробнее здесь.

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

Ответ 2

Копирование комментария в ответ, потому что я нашел его полезным:

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

Ответ 3

Я предлагаю использовать расширение для аккуратности кода. Обратите внимание, что расширение прототипа внутреннего объекта может потенциально связываться с библиотеками, которые зависят от них.

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

И используйте это как:

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

Ответ 5

Немного поздно... Я должен был ответить. Это самый простой способ.

// 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) + '"');

Ответ 6

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