PDA

View Full Version : Adding a zero in front of a number if it's under 10


wox3-iO
02-17-2003, 09:43 AM
The topic is a bit miss leading.

The script:


<script language="JavaScript">
<!--
function showServer(addr) {

var servers = new Array();
servers[0] = "something";
servers[1] = "something2";
servers[2] = "something3";
servers[3] = "something4";


for (var s = 0; s < servers.length; s++)

document.write('<p>#', s+1, '&nbsp;&nbsp;<a class="server" href="', addr, '">', servers[s], '</a><br>');
}

//-->
</script>

The problem: I haven't figured a way to add a zero (0) in front of
the server number if it's under 10, like #01, #02 etc.
I've tried this (for example):

var i;
if (s < 10) {
i = "0"+s;
} else {
i = s+1;
}

It didin't work as planned.
And if this post seems stupid, I apologize for wasting your time.

arnyinc
02-17-2003, 01:31 PM
JavaScript might not consider 01, 02, 03 etc to be numbers. Once you append the 0 to the front, it may convert it to a string.

I executed your code and it seems to be working fine though. Just change the value of s and it appears to do what you want.


<html>
<head>
<script language="javascript">
function buh(){
var s=9;
var i;
if (s < 10)
i = "0"+s;
else
i = s+1;
alert(i);
}
</script>
</head>
<body onload="buh();">

</body>
</html>

GoHF
02-17-2003, 01:36 PM
var servers = new Array();
servers[0] = "something";
servers[1] = "something2";
servers[2] = "something3";
servers[3] = "something4";

for (var s = 0; s < servers.length; s++){
var txt = s+1;
if (s<9) txt='0'+txt;
document.write('<p>#', txt, ' <a class="server" href="', addr, '">', servers[s], '</a><br>');
}


Tested on IE5.5, worked fine

wox3-iO
02-18-2003, 10:43 AM
Thank you both!

wox3-iO
02-18-2003, 11:02 AM
I modified your script GoHF a bit so it adds 2 zeros in front of the number if it's under 10 and 100, and one zero if it's under 100.
Like this:


for (var s = 0; s < servers.length; s++){
var n = s+1;
if (s < 99) {
n = '0'+n;
} else if (s < 9) {
n = '0'+n;
}

document.write('<p>#', n, ' <a class="server" href="', addr, '">', servers[s], '</a><br>');

}
}

wox3-iO
02-18-2003, 11:18 AM
Stupid me...
Ofcorse the code goes like this


for (var s = 0; s < servers.length; s++){
var n = s+1;
if (s < 99 && s < 9) {
n = '00'+n;
} else if (s < 99 && s > 9) {
n = '0'+n;
}

document.write('<p>#', n, ' <a class="server" href="index.htm">', servers[s], '</a><br>');

}
}



Only problem is that it shows number 10 as just 10... not 010.

joeframbach
02-18-2003, 01:08 PM
document.write('<p>#', n, ' <a class="server" href="index.htm">', servers[s], '</a><br>');


i thought you needed to use +:
document.write('<p>#'+ n+ ' <a class="server" href="index.htm">'+ servers[s]+ '</a><br>');