文字数を指定して文字列を分割

文字数を指定して文字列を分割するには、次のような方法で可能です。

関数定義

JavaScript

/**
 * 文字数を指定して文字列を分割
 * @param {string} targetStr 分割する元の文字列
 * @param {number} [limit=1] 分割する文字数
 * @param {boolean} [toNumber] 分割された文字列が数字である場合に数値に変換するかどうか
 * @return {string[]|number[]} 分割された文字列を配列で返す
 */
var stringSplit = function(targetStr, limit, toNumber) {
	var remainderString = String(targetStr),
	    escapeList      = ['\\', '*', '+', '.', '?', '{', '}', '(', ')', '[', ']', '$', '^', '-', '|'],
	    results         = [];

	var sliceString, regString, i, len, count;

	if (typeof limit === 'undefined') limit = 1;

	while (remainderString) {
		sliceString = remainderString.slice(0, limit);
		regString   = sliceString;

		for (i = 0, len = escapeList.length; i < len; i++) {
			regString = regString.replace(escapeList[i], '\\' + escapeList[i]);
		}

		remainderString = remainderString.replace(new RegExp('^' + regString), '');

		if (toNumber && !sliceString.match(/^0/) && sliceString.match(/^[0-9]+$/)) {
			results[count] = Number(sliceString);
		} else {
			results[count] = sliceString;
		}

		count++;
	}

	return results;
};

使い方

JavaScript

var result = stringSplit( kana [, type [, options ] ] );

引数

引数名 初期値 説明
第一引数
必須
targetStr string   分割する元の文字列
第二引数 limit number 1 分割する文字数
第三引数 toNumber boolean   分割された文字列が数字である場合に
数値に変換するかどうか

戻り値

分割された文字列を配列で返します。

サンプルコード

JavaScript

var strings = stringSplit('abcdefg', 2);

alert(strings);

JavaScript逆引きリファレンス一覧へ戻る