ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScriptの文字列操作方法とブラウザの対応例を詳しく解説

JavaScriptの文字列操作方法とブラウザの対応例を詳しく解説

伊谢尔伦
伊谢尔伦オリジナル
2017-07-25 14:32:211513ブラウズ

slice()

定義: 1 つまたは 2 つのパラメータを受け入れ、最初のパラメータは部分文字列の開始位置を指定します。 2 番目のパラメーターは部分文字列の終了位置を表します (終了位置の文字を除く)。2 番目のパラメーターが渡されない場合、文字列の長さが終了位置として使用されます。

1. 渡されたパラメータが正の値の場合:


var str ="helloWorld";
// 一个参数,则将字符串长度作为结束位置
alert(str.slice(3)); // "loWorld"
// 两个参数,7位置上的字符为"r",但不包括结束位置的字符
alert(str.slice(3,7)); // "loWo"

2. 渡されたパラメータが負の値の場合:


slice()方法会将传入的负值与字符串长度相加。
 var str ="helloWorld";
// 一个参数,与字符串长度相加即为slice(7)
alert(str.slice(-3)); // "rld"
// 两个参数,与字符串长度相加即为slice(3,6)
alert(str.slice(3,-4)); // "loW"

3. 2 番目のパラメータが最初のパラメータより小さい場合:

slice() メソッドによって渡された 2 番目のパラメーターが最初のパラメーターより小さい場合、空の文字列が返されます。


var str ="helloWorld";
alert(str.slice(5,3)); // ""

4. IE の互換性

IE8 ブラウザーのテストでは問題はなく、動作は最新のブラウザーと一致しています。

substring()

定義: 1 つまたは 2 つのパラメータを受け入れ、最初のパラメータは部分文字列の開始位置を指定します。 2 番目のパラメーターは部分文字列の終了位置を表します (終了位置の文字を除く)。2 番目のパラメーターが渡されない場合、文字列の長さが終了位置として使用されます。

1. 渡されたパラメータが正の値の場合: 動作はslice()メソッドと同じです


var str ="helloWorld";
// 一个参数,则将字符串长度作为结束位置
alert(str.substring(3)); // "loWorld"
// 两个参数,7位置上的字符为"r",但不包括结束位置的字符
alert(str.substring(3,7)); // "loWo"

2. 渡されたパラメータが負の値の場合:

substring()メソッドが処理します。すべての負のパラメータは 0 に変換されます。例を見てみましょう:


var str ="helloWorld";
// 两个参数,-4会转换为0,相当于substring(3,0) -->即为 substring(0,3)
alert(str.substring(3,-4)); // "hel"

substring() メソッドは、小さい方の数値を開始位置として使用し、大きい方の数値を終了位置として使用します。上の例と同様、substring(3,0) と substring(0,3) は同じ効果があります。

4. IE の互換性

IE8 ブラウザーのテストでは問題はなく、動作は最新のブラウザーと一致しています。

substr()

定義: 1 つまたは 2 つのパラメータを受け入れ、最初のパラメータは部分文字列の開始位置を指定します。 2 番目のパラメーターは前のメソッドとは多少異なり、返される文字数を示します。 2 番目の引数が渡されない場合は、文字列の長さが終了位置として使用されます。例を見てみましょう:

1. 渡されたパラメータが正の値の場合:


var str ="helloWorld";
// 一个参数,则将字符串长度作为结束位置
alert(str.substr(3)); // "loWorld"
// 两个参数,从位置3开始截取后面7个字符
alert(str.substr(3,7)); // "loWorld"

2. 渡されたパラメータが負の値の場合:

substr() メソッドは最初に負の値を追加します。パラメータ 負の 2 番目の引数を 0 に変換するときの文字列の長さ。


var str ="helloWorld";
// 将第一个负的参数加上字符串的长度--->
//即为:substr(7,5) ,从位置7开始向后截取5个字符
alert(str.substr(-3,5)); // "rld"
// 将第二个参数转换为0
// 即为:substr(3,0),即从位置3截取0个字符串,则返回空
alert(str.substr(3,-2)); // ""

3. IE の互換性

substr() メソッドが負の値を渡すと、元の文字列が返されるという問題が発生します。 IE9 ではこの問題が修正されています。

slice、substr、substringの違いをご紹介します

まず、sliceとsubstringは両方とも開始位置と終了位置(終了位置を除く)を受け取りますが、substrは受け取ります。は、返される文字列の開始位置と長さです。以下の例を見てください:


 var test = 'hello world';
  alert(test.slice(,));    //o w
  alert(test.substring(,));   //o w
  alert(test.substr(,));   //o world

ここで注意すべき点は、substring は 2 つのパラメーターのうち小さい方を開始位置として使用し、大きい方のパラメーターを終了位置として使用することです。

例:


alert(test.substring(7,4));   //o w

次に、受け取ったパラメータが負の数値の場合、slice はその文字列の長さを対応する負の数値に加算し、その結果がパラメータとして使用されます。最初のパラメータを追加します。文字列の長さを加算した結果が最初のパラメータとして使用され、すべての負のパラメータが直接 0 に変換されます。テストコードは次のとおりです:


var test = 'hello world';  
alert(test.slice(-));   //rld  
alert(test.substring(-));  //hello world  
alert(test.substr(-));  //rld  
alert(test.slice(,-));  //lo w  
alert(test.substring(,-)); //hel  
alert(test.substr(,-));  //空字符串

注: IE は substr で受け取った負の値の処理にエラーがあり、元の文字列を返します。

以上がJavaScriptの文字列操作方法とブラウザの対応例を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。