Как обрезать строку до 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)
Ответ 4
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/substr
Из ссылки:
string.substr(start[, length])
Ответ 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...