jsの文字列操作方法


一、concatconcat()は、1つ以上の文字列をつなぎ合わせて、スティッチングした新しい文字列を返します.まずは例を見てみます.
var stringValue = "hello ";
var result = stringValue.concat("world");
alert(result);             //"hello world"
alert(stringValue);        //"hello"
この例では、stringValueを呼び出してconcat()方法で戻った結果、"hello world"であるが、stringValueの値はそのままである.実際には、concat()方法は、任意の複数のパラメータ、すなわち、任意の複数の文字列をつなぎ合わせてもよい.もう一つの例を見ます.
var stringValue = "hello ";
var result = stringValue.concat("world", "!");

alert(result);             //"hello world!"
alert(stringValue);        //"hello"
この例は"world"および"!""hello"の最後につなぎ合わせる.concat()は、文字列をつなぎ合わせるための専用の方法であるが、実際には、より多くの番号付け演算子(+)を使用する.また、番号付け演算子を使用する場合は、concat()方式を使用するよりも、多くの場合に簡単に操作できる(特に複数の文字列をつなぎ合わせた場合).
 二、slice、substrとsubstring
 ECMAScriptは、3つのサブ文字列に基づいて新しい文字列を作成する方法を提供する.slice()substr()substring().これらの3つの方法は、操作された文字列のサブ文字列を返します.また、1つまたは2つのパラメータも受け入れられます.最初のパラメータはサブ文字列の開始位置を指定し、第二のパラメータ(指定された場合)はサブ文字列がどこで終了するかを表します.具体的には、slice()およびsubstring()の第2のパラメータは、サブ文字列の最後の文字の後の位置を指定している.substr()の第二のパラメータは、リターンされた文字の個数を指定する.これらの方法に第二のパラメータが渡されていない場合、文字列の末尾を終了位置とします.concat()方法と同様に、slice()substr()substring()も文字列自体の値を変更しない.これらは基本タイプの文字列値を返しただけで、元の文字列には何の影響もない.次の例を見てください.
var stringValue = "hello world";
alert(stringValue.slice(3));            //"lo world"
alert(stringValue.substring(3));        //"lo world"
alert(stringValue.substr(3));           //"lo world"
alert(stringValue.slice(3, 7));         //"lo w"
alert(stringValue.substring(3,7));      //"lo w"
alert(stringValue.substr(3, 7));        //"lo worl"
 この例は、slice()substr()substring()"lo world"を同じように呼び出して得られた結果と比較し、多くの場合の結果は同じである.パラメータ3のみを指定した場合、この3つの方法は、"hello"のうちの2番目の"l"が位置3にあるため、slice()に戻る.2つのパラメータ3および7を指定した場合、substring()および"lo w""world"に戻る("o""o"は位置7にあるので、結果にsubstr()は含まれない).
これらの方法に伝達されるパラメータが負の値である場合,それらの挙動は異なる."lo worl"方法は、入力された負の値を文字列の長さに加算し、slice()方法は負の最初のパラメータを文字列の長さに加算し、負の第2のパラメータを0に変換する.最後に、substr()方法は、すべての負のパラメータを0に変換する.例を見てみます.
var stringValue = "hello world";
alert(stringValue.slice(-3));           //"rld"
alert(stringValue.substring(-3));       //"hello world"
alert(stringValue.substr(-3));          //"rld"
alert(stringValue.slice(3, -4));        //"lo w"
alert(stringValue.substring(3, -4));    //"hel"
alert(stringValue.substr(3, -4));       //""(    )
二つ目のパラメータが負の値である場合、この3つの方法の挙動はそれぞれ異なる.substring()方法は、第2のパラメータを7に変換し、これはslice()を呼び出したことに相当し、slice(3,7)を返す."lo w"方法は、第2のパラメータを0に変換して呼び出しをsubstring()に変えますが、この方法はより小さい数を開始位置としているので、大きな数を終了位置としていますので、最終的にはsubstring(3,0)の呼び出しに相当します.substring(0,3)も、第2のパラメータを0に変換し、つまりゼロ文字を含む文字列、つまり空の文字列を返すことを意味する.