要件的には tkturbo さんの回答で良いと思うのですが、文字列の例から察するに「英数字からなるシリアルナンバー」でしょうか。
その場合、36進数の数値として値を保持しておくと管理性が高くなるように思いました。
JavaScript
1'use strict';
2function parseBase36 (base36) {
3 return parseInt(base36, 36);
4}
5
6function toBase36 (number, digit) {
7 var base36 = Number(number).toString(36).toUpperCase();
8
9 return digit ? (Array(digit).join('0') + base36).slice(-digit) : base36;
10}
11
12console.log(toBase36(parseBase36('0000SH0426'))); // "SH0426"
13console.log(toBase36(parseBase36('SH0426'))); // "SH0426"
14console.log(toBase36(parseBase36('0020160426'))); // "20160426"
15console.log(toBase36(parseBase36('20160426'))); // "20160426"
16
17var serialNumber = parseBase36('01202342AW'); // 36進数を Number 型に変換する
18console.log(toBase36(serialNumber++, 10)); // "01202342AW"
19console.log(toBase36(serialNumber++, 10)); // "01202342AX"
20console.log(toBase36(serialNumber++, 10)); // "01202342AY"
21console.log(toBase36(serialNumber++, 10)); // "01202342AZ"
Re: Arika0719 さん
2016/05/10 02:48