UNPKG

numerator

Version:

Auto incrementing serial numbers, containing non-digit symbols.

52 lines (37 loc) 1.12 kB
const numerator = module.exports = {}; numerator.next = function(number = 0, expand = false) { number = number.toString(); let next = 0; let index = -1; let prefix = number; let length = number.length; const filter = new RegExp('(\\d+$)'); const match = number.match(filter); if(match) { index = number.lastIndexOf(match[1]); prefix = number.substring(0, index); next = parseInt(match[1]); } next = next + 1; if((prefix + next).length > length) { if(expand) { length++; } else { throw new Error("[Numerator] Parameter 'number' achieved its maximum"); } } next = next.toString().padStart(length, prefix + "0000000000000000000000000000000000000"); return next; } numerator.getPrefix = function(number) { number = number.toString(); let index = -1; let prefix = number; const filter = new RegExp('(\\d+$)'); const match = number.match(filter); if(match) { index = number.lastIndexOf(match[1]); prefix = number.substring(0, index); } return prefix; }