【Javascript】String.slice(start,end)

  • このエントリーをはてなブックマークに追加


JavaScript:the good parts 「良いパーツ」によるベストプラクティス [ ダグラス・クロフォード ]  ExternalLink P105 ここらから–
sliceメソッドはある文字列の一部をコピーした新しい文字列を生成する。startパラメータが負の値なら、string.lengthの値を加算した値が利用される。endパラーメータは省略可能であり、デフォルト値はstring.lengthである。endパラメータに負の値が指定された場合も、string.lengthの値が加算される。endパラメータの値は、必要な最後の文字の位置よりも1つ大きい位置を指定する。したがって、pの位置からn文字分の文字を取得したい場合は、string.slice(p,p+n)のように指定する。
JavaScript:the good parts 「良いパーツ」によるベストプラクティス [ ダグラス・クロフォード ] ExternalLink P105 ここまで–

文字列は0番目始まりのようだな。



JavaScript:the good parts 「良いパーツ」によるベストプラクティス [ ダグラス・クロフォード ]  ExternalLink P106 ここらから–
string.substring(start,end)
substringメソッドは、sliceメソッドと同じだが、パラメータに負の値を指定することができない。substringメソッドを使わなければならない理由は1つもない。代わりにsliceメソッドを使えばよいだろう。
JavaScript:the good parts 「良いパーツ」によるベストプラクティス [ ダグラス・クロフォード ]  ExternalLink P106 ここまで–

string.substringメソッドはstring.sliceメソッドと同じみたい。string.sliceメソッドを使えばいいな。
文字列の長さより大きい値や、(-文字列の長さ)より小さい値を指定する場合はエラーが出ないが、これを正常な処理とは言いたくないな。


let text = 'HelloWorld2023';
console.log("text.length = " + text.length);

let a = text.slice(2);
console.log("a.length = " + a.length);
console.log("a = " + a);

let b = text.slice(0, 5);
console.log("b.length = " + b.length);
console.log("b = " + b);

let c = text.slice(-4);
//負の値の場合は、-4+text.length=10
//開始位置は10番目(0始まり)
console.log("c.length = " + c.length);
console.log("c = " + c);

let d = text.slice(100);
//文字列の長さより大きい値を入れると
//長さ0の文字列がコピーされて空文字になる
console.log("d.length = " + d.length);
if(d === ""){
console.log("空文字d = " + d);
}

let e = text.slice(-13);
//負の値の場合は、-13+text.length=1
//開始位置は1番目(文字列は0始まり)
console.log("e.length = " + e.length);
console.log("e = " + e);

let f = text.slice(-14);
//負の値の場合は、-14+text.length=0
//開始位置は0番目(文字列は0始まり)
console.log("f.length = " + f.length);
console.log("f = " + f);

let g = text.slice(-15);
//負の値の場合は、-15+text.length=-1
//マイナスの場合は
//開始位置は0番目(文字列は0始まり)になるみたい
console.log("g.length = " + g.length);
console.log("g = " + g);


let h = text.slice(-15,-100);
//endが負の値の場合、-100+text.length=-85
//このときendが0番目になるみたい
//つまり0番目(start)から0番目(end)で
//長さ0の文字列がコピーされて空文字になる
console.log("h.length = " + h.length);
if(d === ""){
console.log("空文字h = " + h);
}

let i = text.slice(-15,-10);
//endが負の値の場合、-10+text.length=4
//開始位置は0番目(文字列は0始まり)
//終了は(4-1=3)番目(文字列は0始まり)
console.log("i.length = " + i.length);
console.log("i = " + i);


/*

text.length = 14
a.length = 12
a = lloWorld2023
b.length = 5
b = Hello
c.length = 4
c = 2023
d.length = 0
空文字d =
e.length = 13
e = elloWorld2023
f.length = 14
f = HelloWorld2023
g.length = 14
g = HelloWorld2023
h.length = 0
空文字h = 
i.length = 4
i = Hell

*/

  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。

コメントを残す

*