web-dev-qa-db-ja.com

Javascriptで文字列をN文字にトリミングする方法は?

Javascriptを使用して、引数として渡された文字列を指定された長さにトリミングし、引数としても渡される関数を作成するにはどうすればよいですか?例えば:

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

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

誰でもアイデアがありますか?部分文字列の使用について聞いたことがありますが、よくわかりませんでした。

124
user825286

なぜサブストリングを使用しないのか... string.substring(0, 7);最初の引数(0)は開始点です。 2番目の引数(7)は終点(排他的)です。 詳細はこちら

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

Will's コメントを回答にコピーします。

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

35
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)
11
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-必要な長さの制限

楕円の追加を選択した場合、出力に追加します。

JavaScriptの一般的な使用例を4つ挙げました。レガシーサポートのために、オーバーロードでStringプロトタイプを使用することを強くお勧めします。これにより、後で簡単に実装および変更できます。

1
Matthew Egan
    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...
0
MD. ABU TALHA