I am trying to create the pattern where the number will auto-increment with at least one prefix with zero when the number is over. for example initial value will be `ABCD0001`

when I add 1 it will be `ABCD0002`

so on it will continuously work like `ABCD9999`

. now the digit is over then it will convert to `ABCD010000`

means if the digit will over auto the number zero add as like here we can see `ABCD010000`

I am trying to create this function but it removes all the zeroes from the code. please help how I create this function which would give the expected output in the javascript. I am trying to create but it not working as below.

It is a little bit inconsistent that you have ABCD0001, ABCD0002 and then go to ABCD10000, ABCD10001. So if you increase the number of digits, you should start with ABCD1, ABCD2 etc.

But here is a solution:

```
let id = "ABCD9991";
for(let i = 0; i < 100; i++)
{
let strings = id.replace(/[0-9]/g, '');
let digits = (parseInt(id.replace(/[^0-9]/g, '')) + 1).toString();
if(digits.length < 4)
digits = ("000"+digits) .substr(-4);
id = strings + digits;
console.log(id);
}
```

1 Like

Welcome to the forum @wawane7256

My attempt

First a function to get the required padding length of a given string

```
// strings have a length property '22'.length === 2
function getPadLength ({ length }) {
if (length < 5) return 4
// if an odd number in length return the length + 1
return (length % 2 === 0) ? length : length + 1
}
getPadLength('24') // 4
getPadLength('52367') // 6
getPadLength('102367') // 6
```

Now a function to pad with zeros

```
function padZeros (num) {
const numStrg = num.toString()
const padding = getPadLength(numStrg)
return numStrg.padStart(padding, '0')
}
padZeros(24) // '0024'
padZeros(10235) // '010235'
padZeros(102356) // '102356'
[2, 64, 512, 1024, 32768].map(padZeros)
// ['0002', '0064', '0512', '1024', '032768']
```

thank you for your answer…

```
function padZeros (num, mynumber) {
const numStrg = num.toString() + mynumber;
const padding = getPadLength(numStrg)
return numStrg.padStart(padding, '0')
}
```

console.log(padZeros(‘ABCD0001’, 1)); // 0ABCD00011

expected output: ABCD0002

very nice, but it deprecated as NodeJs saying…

What i gave you just deals with the numbers. I thought you might be able to figure out the rest

Maybe you could split the string first. Then join afterwards.

Sorry, this happens if you switch to often between PHP and JS

Use substring() instead.

2 Likes