Мне нужно создать функцию увеличения количества счетов-фактур, такую как новые книги. Как работает в новых книгах, он увеличивает число и алфавит.Свежие книги, такие как инкремент номера счета в javascript
Условие 1: если мой номер счет-фактура 0000012 он должен быть увеличен до 0000013
Условие 2: если мой номер счета-фактуры является 000001a он должен быть увеличен до 000001b
и так далее. Любая идея о том, как это сделать?
Моя попытка:
function replaceCharAt(string, index, character){
return string.substr(0, index) + character + string.substr(index + character.length)
}
function generateInvoiceNumber(invoiceNumber, useIndex){
var useIndex = useIndex || invoiceNumber.length - 1;
var invoiceNumber = invoiceNumber.trim();
var incrementChar = invoiceNumber[useIndex];
if(incrementChar == '9' || incrementChar == 'z' || incrementChar == 'Z'){
if(incrementChar == 9){
invoiceNumber = replaceCharAt(invoiceNumber, useIndex, '0');
}
else{
invoiceNumber = replaceCharAt(invoiceNumber, useIndex, 'a');
}
return generateInvoiceNumber(invoiceNumber, useIndex - 1);
}
else{
var replaceChar = String.fromCharCode(incrementChar.charCodeAt(0) + 1);
invoiceNumber = replaceCharAt(invoiceNumber, useIndex, replaceChar);
}
return invoiceNumber;
}
Это дает правильных результатов. но я не уверен обо всех условиях, и если он повесит цикл событий. Я напишу несколько тестов и попробую
Вопрос: должно ли оно быть шестнадцатеричным значением? –
Просьба указать поведение. Что добавит '000001z'? то же самое для '0000019' и т. д. – Mosho
000001z woudl будет увеличено до, вероятно, 000002z (необходимо проверить в свежей книге, как они это делают.) и 0000019 будет увеличиваться до 0000020. – Yalamber