文字数を指定して文字列を分割
文字数を指定して文字列を分割するには、次のような方法で可能です。
関数定義
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);