JavaScript Number preserve leading 0

Solution 1:

Represent them as a String. Outside of strict mode, a leading zero denotes an octal number otherwise.

Also, why would a leading zero have any significance when calculating numbers? Just use parseInt(num, 10) if you need to.

Solution 2:

Store and display the postcodes as strings, thus retaining the leading zeros. If you need to make a numerical comparison convert to number at the time. The easiest way to convert is with the unary plus operator:

var strPC = "01745",
    numPC = +strPC;

alert(numPC === +"01745"); // true

+value >= +splitZips[0] && +value <= +splitZips[1];
// etc.

Before you start comparing you might want to ensure the entered value actually is numeric - an easy way to be sure it is a four or five digit code with or without leading zeros is with a regex:

/^\d{4,5}$/.test(searchTerm)       // returns true or false

Solution 3:

Instead a parseInt you could use type casting :)

"0123">"122" // false
+"0123">"122" // true  | that  means: 123>"122" 

Btw, what more you can use a each of bitwise operators :

 ~~"0123"   
 "0123"|0  
 "0123"&"0123" 
 "0123">>0
 "0123"<<0 

With the same effect :)