JavaScript文字列「三剣士」
2933 ワード
JavaScript文字列の方法はいろいろあります.その中には3つの方法が文字列の裁断と関係があります.彼らはそれぞれslice()、substring()とsubstr()です.彼らを総称して「三剣士」と呼びます.
彼らは文字列を裁断するために使われていますので、混同しやすいです.具体的な例に合わせて共通点と違いを説明します.
一、共通点
①1つまたは2つのパラメータを受け付けます.そのうち、最初のパラメータは切り取りの開始位置です.②切り取られたサブ文字列を返します.元の文字列は影響を受けません.③2つ目のパラメータを渡さないと、開始位置(1つ目のパラメータ)から文字列の最後まで切り取ります.
二、違います
①slice()とsubstring()の2つ目のパラメータは、いずれも裁断の終了位置を表しています.(これは、配列中のslice()方法と類似しています.substr()の2つ目のパラメータは、文字列の長さを切り取ります.②入力されたパラメータが負の値である場合、slice()は、負のパラメータを文字列の長さに加算します.substring()すべての負のパラメータを0に変換しますが、substr()は比較的複雑です.最初の負のパラメータに文字列の長さを加えて、2番目のパラメータを0に変換します.
1.パラメータは正数です.
2.パラメータにマイナスがあります.
本稿の重点総括:
①substr()二つ目のパラメータは裁断長さで、負であれば裁断結果は必ず空の文字列②いずれ裁断しても元の文字列に影響しない③パラメータが負であれば、sliceを総長とし、substringをゼロにし、substrを加えたら総長を合わせてゼロにする.
彼らは文字列を裁断するために使われていますので、混同しやすいです.具体的な例に合わせて共通点と違いを説明します.
一、共通点
①1つまたは2つのパラメータを受け付けます.そのうち、最初のパラメータは切り取りの開始位置です.②切り取られたサブ文字列を返します.元の文字列は影響を受けません.③2つ目のパラメータを渡さないと、開始位置(1つ目のパラメータ)から文字列の最後まで切り取ります.
var str = ' : ';
var str1 = str.slice(2);
console.log(str1); // " : "
str1 = str.substring(2);
console.log(str1); // " : "
str1 = str.substr(2);
console.log(str1); // " : "
console.log(str); // " : "
これらの3つの方法の使い方と役割は同じで、いずれも「公」の文字(索引の値が2)を文字列の最後まで切り取って返します.元の文字列に影響はありません.二、違います
①slice()とsubstring()の2つ目のパラメータは、いずれも裁断の終了位置を表しています.(これは、配列中のslice()方法と類似しています.substr()の2つ目のパラメータは、文字列の長さを切り取ります.②入力されたパラメータが負の値である場合、slice()は、負のパラメータを文字列の長さに加算します.substring()すべての負のパラメータを0に変換しますが、substr()は比較的複雑です.最初の負のパラメータに文字列の長さを加えて、2番目のパラメータを0に変換します.
1.パラメータは正数です.
var str = ' : ';
var str1 = str.slice(2,5);
console.log(str1); // " "
str1 = str.substring(2,5);
console.log(str1); // " "
str1 = str.substr(2,3);
console.log(str1); // " "
明らかに、slice()とsubstring()の使い方が一致しています.二つのパラメータはそれぞれ開始位置2と終了位置5を表しています.終了位置5の文字(":)は含まれていません.substr()の2番目のパラメータは切り取りたい文字列の長さを表しています.実際の例では3文字を切ります.2.パラメータにマイナスがあります.
var str = ' : ';
console.log(str.length); // 10
var str1 = str.slice(-4); // str.slice(6)
console.log(str1); // " "
str1 = str.substring(-4); // str.substring(0)
console.log(str1); // " : "
str1 = str.substr(-4); // str.substr(6)
console.log(str1); // " "
var str2 = str.slice(2,-4); // str.slice(2,6)
console.log(str2); // " :"
str2 = str.substring(2,-4); // str.substring(2,0), str.substring(0,2)
console.log(str2); // " "
str2 = str.substr(2,-4); // str.substr(2,0)
console.log(str2); // ""
var str3 = str.slice(-2,-4); // str.slice(8,6)
console.log(str3); // ""
str3 = str.substring(-2,-4); // str.substring(0,0)
console.log(str3); // ""
str3 = str.substr(-2,-4); // str.substr(8,0)
console.log(str3); // ""
var str4 = str.slice(-4,-2); // str.slice(6,8)
console.log(str4); // " "
str4 = str.substring(-4,-2); // str.substring(0,0)
console.log(str4); // ""
str4 = str.substr(-4,-2); // str.substr(6,0)
console.log(str4); // ""
パラメーターがマイナスの時、覚えておくだけで、sliceは負に合わせて総長を加えて、substringは負に会ったらゼロになります.substrは総長を加えて1回ゼロになります.また、特に注意する必要があるのは、slice()の最初のパラメータは第二のパラメータよりも小さくなければ、文字列を正常に切り取られません.でないと、戻ってくるのは空の文字列です.substring()はこの問題がありません.本稿の重点総括:
①substr()二つ目のパラメータは裁断長さで、負であれば裁断結果は必ず空の文字列②いずれ裁断しても元の文字列に影響しない③パラメータが負であれば、sliceを総長とし、substringをゼロにし、substrを加えたら総長を合わせてゼロにする.