-2

how to generate multiple tracking numbers, and also how to make them like this.

UB5775XXXXXHK

So "XXXXX" above will be scrambled and become multiple tracking numbers like this

UB577594624HK UB577573536HK UB577593735HK

and so on until the number of limits we want

Nancy Sav
  • 3
  • 1
  • 1
    Does this answer your question? [Generate random string/characters in JavaScript](https://stackoverflow.com/questions/1349404/generate-random-string-characters-in-javascript) – Heretic Monkey Apr 17 '21 at 22:32
  • Would you not at have some time have a duplicate tracking number when you're generating numbers in this fashion? – Chris Apr 18 '21 at 01:20

2 Answers2

0
  • Use Math.random() * 10 to generate a random float
  • Use Math.floor() or the quicker ~~ to floor the result (remove decimals)
  • Concatenate your digits using +=
  • Insert them where needed using Template Literals (or again using concatenation +)

const trackingNumber = (pr = "UB775", su = "HK") => {
  for(let i=0; i<5; i++) pr += ~~(Math.random() * 10);
  return pr + su;
};

console.log(trackingNumber()); 
console.log(trackingNumber());
console.log(trackingNumber());
console.log(trackingNumber());

// Example changing prefix and suffix:
console.log(trackingNumber("ZA001", "PD"));
Roko C. Buljan
  • 196,159
  • 39
  • 305
  • 313
0

You can do something like this:

const input = "UB5775XXXXXHK";
const randomNumber = () => Math.trunc(Math.random() * 10); // To genrate a random number
const genrateTrackingNum = (str) => str.replace(/X/g, randomNumber); // To replace X with a random number


console.log(genrateTrackingNum(input));
console.log(genrateTrackingNum(input));
console.log(genrateTrackingNum(input));
console.log(genrateTrackingNum(input));
console.log(genrateTrackingNum(input));

▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬

Explanation:


The randomNumber function will generate a random number from 0 to 9.

const randomNumber = () => Math.trunc(Math.random() * 10);

The genrateTrackingNum function will replace every X in the input string (here UB5775XXXXXHK) with a random number.

const genrateTrackingNum = (str) => str.replace(/X/g, randomNumber);

Manas Khandelwal
  • 3,790
  • 2
  • 11
  • 24