JSには、文字傍受関数には、一般的に使用される3つのスライス()、substr()、およびsubst()があります。文字を傍受するときに、Slice()、Substr()、およびsubstr()関数の使用と違いを紹介します。
文字列を撮影するための3つの機能:スライス(開始、[終了])、サブストリング(start、[end])、およびsubstr(start、[length]))
関連属性:
スライス()
最初のパラメーターは開始位置を表し、2番目のパラメーターはエンド位置の次の位置を表し、インターセプトされた文字列の長さは2番目のパラメーターと最初のパラメーターの違いです。パラメーター値が負の場合、値は文字列の長さに追加され、正の値に変換されます。最初のパラメーターが2番目のパラメーターよりも大きい場合、空の文字列が返されます。
substring()
最初のパラメーターは開始位置を表し、2番目のパラメーターはエンド位置の次の位置を表します。パラメーター値が負の場合、値は0に変換されます。 2つのパラメーターの中で、より小さな値が開始位置として取得され、インターセプトされた文字列の長さは、より大きな値とより小さな値の違いです。
substr()
最初のパラメーターは開始位置を表し、2番目のパラメーターは傍受された長さを表します
PS:すべての文字列は0から始まります
例:
<script type = "text/javascript"> var stmp = "rcinn.cn"; // 1つのパラメーターアラート(stmp.slice(3))を使用します。 // 4番目のキャラクターから、最後の文字をインターセプトします。 "nn.cn" alert(stmp.substring(3))を返します。 // 4番目のキャラクターから、最後の文字をインターセプトします。 「nn.cn」を返す// 2つのパラメーターアラート(stmp.slice(1,5))// 2番目の文字から5番目の文字まで使用します。 「cinn」アラート(stmp.substring(1,5))を返します。 // 2番目のキャラクターから5番目のキャラクターまで。 「CINN」を返します// 1つのパラメーターのみが0で0の場合は、パラメーターアラート全体(stmp.slice(0)); //文字列アラート全体を返します(stmp.substring(0)); //最初の文字アラートを返します(stmp.slice(0,1)); "r" //上記の例では、slice()とsubstring()の使用法は同じであることがわかります//返された値は同じですが、パラメーターが負の場合、それらの戻り値は異なります。次の例を参照してくださいアラート(stmp.slice(2、-5));返されます); //サブストリング(2、-5)は実際にはサブストリング(2,0)であり、負の数字が0に変換され、サブストリングは常に開始位置として少ない数を取得します。 Alert(Stmp.Substring(1,5))// 2番目のキャラクターから5番目の文字まで開始。 「cinn」アラート(stmp.substr(1,5)); // 2番目の文字から開始、5文字をインターセプトする。 "cinn。" </script>を返します
サブストリング方法とサブストリング方法の違い
<script type = "text/javascript"> var str = "0123456789"; //アラート(str.substring(0)); -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------アラート(str.substring(-10)); // ------------ "0123456789"アラート(str.substring(-12)); ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- alert(str.substring(2,2)); ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- alert(str.substr(5));//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------アラート(str.substr(0,10)); ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------アラート(str.substr(-1,5)); // ------------- "01234" alert(str.substr(-1、-5)); // ---------------- "" </scrip>
関数: split()
関数:指定されたセパレーターを使用して、文字列を配列に分割します
例:
str =” jpg | bmp | gif | ico | png "; arr = thestring.split(" | "); // arrは文字値" jpg "、" bmp "、" gif "、" ico "、" png "を含む配列です。
関数: John()
関数:選択したデリミッターを使用して、配列を文字列に結合する
例:
var delimitedstring = myarray.join(delimiter); var mylist = new array( "jpg"、 "bmp"、 "gif"、 "ico"、 "png"); var portablelist.join( "|"); //結果はjpg | bmp | gif | ico | pngです
関数: indexof()
関数:文字列のサブストリングに一致する最初の文字の添え字を返します
var mystring =” javascript”; var w = mystring.indexof(” v”); wは2var x = mystring.indexof(” s”); xは4var y = mystring.indexof(” Script”);
私はオンラインで別の非常に簡単な方法を見ました、コードは次のとおりです。
function func(s、n){return s.Replace(/([^x00-xff])/g、 "$ 1A")。スライス(0、n).replace(/([^x00-xff])a/g、 "$ 1"); }この方法は非常に賢く、基本的に正しいです。 「基本的に」と言われています。なぜなら、「123漢字テスト」の長さ6の長さ6の左側にある場合、「123の中国語」ではなく「123漢字」を返すからです。もちろん、これは必ずしも問題ではありません。場合によっては、要件はこのようなものかもしれません。この方法は次のように改善できます。
関数func(s、n){return s.slice(0、n).replace(/([^x00-xff])/g、 "$ 1a")。スライス(0、n).replace(/([^x00-xff])a/g、 "$ 1"); }上記はこの記事に関するものです。誰もがJavaScriptプログラミングを学ぶことが役立つことを願っています。