我想知道是否可以在javascript或php或其他任何地方执行此操作。
我想制作一个以001000开头的发票编号,现在要通过添加1
来获取下一个发票编号,我需要增加它,但当我尝试在php中执行此操作时。它只是将它转换为一个数字,这是不好的,因为我需要00
前缀。并在JavaScript中。它只是将1
添加到最后。
我知道可以使用正则表达式完成,但我不知道如何。
编辑:这是我想要实现的发票顺序。
当它到达009999
时,它应该是010000
请帮忙。
解决:
我用str_pad作为斯宾塞说。
php
$last_invoice = Quote::all()->last()->invoice + 1; // to convert it to number.
str_pad( ($last_invoice, 6, '0', STR_PAD_LEFT); // fill 0 prefix.
答案 0 :(得分:2)
您可以将发票编号存储为实际编号,而不是字符串,以便轻松增加。当您打印显示的数字时,将其传递给前导零。
答案 1 :(得分:2)
您可以使用此逻辑
var currentNumber = "000100";
var nextNumber = "00" + String( Number( currentNumber ) + 1 ).slice( 0 , 6 );
console.log(nextNumber);

将其转换为函数
function nextInSequence( currentNumber )
{
return "00" + String( Number( currentNumber ) + 1 ).slice( 0 , 6 );
}
var currentNumber = "000100";
currentNumber = nextInSequence( currentNumber );
console.log( currentNumber )
currentNumber = nextInSequence( currentNumber );
console.log( currentNumber )
currentNumber = nextInSequence( currentNumber );
console.log( currentNumber )

答案 2 :(得分:0)
我用str_pad作为@spencermay说。 PHP $ last_invoice = Quote :: all() - > last() - > invoice + 1; //将其转换为数字 str_pad(($ last_invoice,6,'0',STR_PAD_LEFT); //填0前缀。