如何在 Javascript 中將字串裁剪為 N 個字元?
如何使用 Javascript 製作一個函數,將作為參數傳入的字串修剪到作為參數傳入的指定長度。例如:
var string = "this is a string";
var length = 6;
var trimmedString = trimFunction(length, string);
// trimmedString should be:
// "this is"
有人有什麼想法嗎?我聽說過使用子字串,但不太明白。
答案#1
為什麼不直接使用 substring... string.substring(0, 7); 第一個參數 (0) 是起始位置。第二個參數 (7) 是結束位置(不包含)。更多資訊在這裡。
var string = "this is a string";
var length = 7;
var trimmedString = string.substring(0, length);
答案#2
將 Will 的評論複製到答案中,因為我覺得它很有用:
var string = "this is a string";
var length = 20;
var trimmedString = string.length > length ?
string.substring(0, length - 3) + "..." :
string;
謝謝你,Will。
給有興趣的人一個 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
偏好使用 String.prototype.slice 而不是 String.prototype.substring 方法(在 substring 中,在某些情況下它會給出與你預期不同的結果)。
從左到右修剪字串:
const str = "123456789";
result = str.slice(0,5); // "12345", extracts first 5 characters
result = str.substring(0,5); // "12345"
startIndex > endIndex: :
result = str.slice(5,0); // "", empty string
result = str.substring(5,0); // "12345" , swaps start & end indexes => str.substring(0,5)
從右到左截取字串: (負起始索引)
result = str.slice(-3); // "789", extracts last 3 characters
result = str.substring(-3); // "123456789" , -ve becomes 0 => str.substring(0)
result = str.substring(str.length - 3); // "789"
答案#5
https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Reference/Global_Objects/String/substr
來自連結:
string.substr(start[, length])
