1

私は文字列を持っています15.Prototypal-Inheritance-and-Refactoring-the-Slider.txt、、のようにしたいです15.Prototypal...-Slider.txt

lengthテキストの は、56最初の 12 文字と最後の 10 文字 (句読点を含む) を保持し、他の文字を次のように置き換えるにはどうすればよいですか?...

コードの開始方法がよくわかりません。次のようなものを作成しました

var str="15.Prototypal-Inheritance-and-Refactoring-the-Slider.txt";
str.split("// ",1);

これで必要なものが得られますが、単語ではなく文字に基づいて結果を得るにはどうすればよいですか。

4

5 に答える 5

6

str.slice()を使用できます。

function middleEllipsis(str, a, b) {
  if (str.length > a + b)
    return str.slice(0, a) + '...' + str.slice(-b);
  else
    return str;
}

middleEllipsis("15.Prototypal-Inheritance-and-Refactoring-the-Slider.txt", 12, 10);
// "15.Prototypa...Slider.txt"

middleEllipsis("mpchc64.mov", 12, 10);
// "mpchc64.mov"
于 2013-07-08T01:30:42.127 に答える
2

この関数は、あなたが求めることを行います:

function fixString(str) {
  var LEN_PREFIX = 12;
  var LEN_SUFFIX = 10;
  if (str.length < LEN_PREFIX + LEN_SUFFIX) { return str; }
  return str.substr(0, LEN_PREFIX) + '...' + str.substr(str.length - LEN_SUFFIX - 1);
}

必要に応じて LEN_PREFIX と LEN_SUFFIX を調整できますが、投稿で指定した値があります。関数のプレフィックスとサフィックスの長さの入力引数を作成することで、関数をより汎用的にすることもできます。

function fixString(str, prefixLength, suffixLength) {
  if (str.length < prefixLength + suffixLength) { return str; }
  return str.substr(0, prefixLength) + '...' + str.substr(str.length - suffixLength - 1);
}
于 2013-07-08T01:39:30.630 に答える
1

15.Prototypal...-Slider.txtのようにしたい
LIVE DEMO


接尾辞と接頭辞付きのテキストがどれだけ長くても、これは望ましいものになります:

var str = "15.Prototypal-Inheritance-and-Refactoring-the-Slider.txt",
    sp = str.split('-'),
    newStr = str;
if(sp.length>1) newStr =  sp[0]+'...-'+ sp.pop() ;

alert( newStr ); //15.Prototypal...-Slider.txt

-メソッドを使用して文字列を分割し、分割された文字列.pop()から最後の配列値を取得します。
定義された位置で文字列を分割する代わりに、次のような文字列も処理します。

11.jQuery-infinite-loop-a-Gallery.txt を
返す:
11.jQuery...-Gallery.txt

于 2013-07-08T01:28:11.427 に答える
0

別のオプションがあります。これは、最初の 13 文字と最後の 11 文字を保持することに注意してください。これは、例で指定したものだからです。

var shortenedStr = str.substr(0, 13) + '...' + str.substring(str.length - 11);
于 2013-07-08T01:37:01.777 に答える
-1

javascript substring コマンドを使用して、必要なものを見つけることができます。

文字列が常に 56 文字の場合、次のようにすることができます。

var str="15.Prototypal-Inheritance-and-Refactoring-the-Slider.txt";


var newstr = str.substring(0,11) + "..." + str.substring(45,55)

文字列の長さが異なる場合は、最初に文字列の長さを見つけてから、部分文字列を実行することを強くお勧めします。

見てください:http://www.w3schools.com/jsref/jsref_substring.asp

于 2013-07-08T01:28:19.997 に答える