递增一个字符串。 (JS或PHP)

时间:2016-10-28 14:04:36

标签: javascript php regex

我想知道是否可以在javascript或php或其他任何地方执行此操作。

我想制作一个以001000开头的发票编号,现在要通过添加1来获取下一个发票编号,我需要增加它,但当我尝试在php中执行此操作时。它只是将它转换为一个数字,这是不好的,因为我需要00前缀。并在JavaScript中。它只是将1添加到最后。

我知道可以使用正则表达式完成,但我不知道如何。

编辑:这是我想要实现的发票顺序。

  • 001000
  • 001001
  • 001002

当它到达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.

3 个答案:

答案 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前缀。