文字列を左右にシフトしてずらす方法(JavaScript)

JavaScriptで、文字列(String)を左または右にずらす方法を説明します。

例えば、「あいうえお」を右に2つシフトする場合、「えおあいう」となります。

jQueryを利用したコードになります。

以下、HTML。

以下、JavaScript。

実際の動きは、jsdo.itで見ることができます。

jsdo.it – 文字列をシフトする

HTMLでは、文字列をシフトする方向とシフトする数を入力できるようにします。

JavaScriptでは、まず、シフト数が文字列の長さより大きい場合に、例えば、「あいうえお」を右に7文字シフトすることは、右に2文字シフトするのと同等になるので、

num = num % str.length;

をして、文字列の長さ以内のシフト数に変換しておきます。

左シフトのときは、

str.slice(num) + str.slice(0, num);

例えば、「あいうえお」を左に2つシフトする場合、「うえお」+「あい」のようにして「うえおあい」と変換します。

右シフトのときは、

str.slice(str.length – num) + str.slice(0, str.length – num);

例えば、「あいうえお」を右に2つシフトする場合、「えお」+「あいう」のようにして「えおあいう」と変換します。

以上のように、文字列の中の指定された範囲の部分の文字列を返す、sliceメソッドを上手く使うことで、文字列をシフトできます。

Webアプリの「もじいじり」は、このコードを利用しています。

スポンサーリンク