JavaScriptで大きな文字列をnサイズのチャンクに分割するにはどうすればよいですか?
大きな文字列をnサイズのサブ文字列に分割する方法は2つあります。
1)従来の方法
これは、forループ、concat、modulousなどの従来の方法のみが使用される純粋な論理方法です。この方法は、事前に決定された方法であるため、正規表現方法ほど高度ではありません。文字列を分割するチャンクの数は、コーディングを開始する前に事前に決定しておく必要があります。
次の例では、文字列「tutorixtutorixtutorix」がサブ文字列の3つのチャンクに分割されています。
例
<html> <body> <script> var v = []; var str = "tutorixtutorixtutorix" var t = str.split(""); document.write(t); document.write("</br>"); for (var i = 0; i< t.length; i++){ if((i % 3) == 2){ v.push(t[i-2].concat(t[i-1],t[i])); } } document.write(v); </script> </body> </html>
出力
tut,ori,xtu,tor,ixt,uto,rix
2)正規表現メソッド
あらかじめ決められた方法ではありません。正規表現メソッドは、文字列をチャンクするサイズを指定するためのスロットを提供します。
一般に、最大でnサイズのサブ文字列を抽出する文字列の場合、構文は次のようになります。
str.match(/.{1,n}/g); // Replace n with the size of the substring
文字列に改行またはキャリッジリターンが含まれている場合、構文は次のようになります
str.match(/(.|[\r\n]){1,n}/g); // Replace n with the size of the substring
コードの元の構文は
です。function chunkString(str, size) { return str.match(new RegExp('.{1,' + size + '}', 'g')); }
例
<html> <body> <script> stringChop = function(str, size){ if (str == null) return []; str = String(str); return size > 0 ? str.match(new RegExp('.{1,' + size + '}', 'g')) : [str]; } document.write(stringChop('tutorialspoint')); document.write("<br>"); document.write(stringChop('tutorix',2)); document.write("<br>"); document.write(stringChop('tutorialspoint',3)); </script> </body> </html>
出力["tutorialspoint"]
["tu","to","ri","x"]
["tut","ori","als","poi","nt"]
-
文字列JavaScriptの暗号化
最初の引数として文字列を取り、2番目の引数として数値を受け取るJavaScript関数を作成する必要があります。 関数は、文字列の各アルファベットを、指定された数だけアルファベットを上にシフトして置き換える必要があります。 シフトは、未定義または無効な結果ではなく、zの後に続くように、アルファベットの最初または最後に戻る必要があります。 例 const str = 'this is a str'; const encryptString = (str = '', num = 1) => { const alphabet = &
-
Pythonで区切り文字strによって文字列を分割する方法は?
PythonのStringクラスには、オプションの引数として区切り文字を受け取るsplit()というメソッドがあります。デフォルトの区切り文字は空白です。次のように使用できます: >>> 'aa-ab-ca'.split('-') ['aa', 'ab', 'ca'] >>> 'abc mno rst'.split(' ') ['abc', 'mno', 'rst'] この操作に正規表現を使用するこ