Brian's company needs to track financial information indexed by 100 digit routing numbers. Now, obviously, not all of those digits are significant, so if a user enters "123", the application needs to be smart enough to pad out the other 97 digits with leading zeros. Sane people might think this should be implemented as a one-line call to a built-in method. The more DIY among us might waste time building up a for loop. And, of course, a LISP fan would simply torture future coders with recursion and parentheses.

Then there's this approach that Brian found:

function ZeroFill(Data) {
       var length = Data.length;
       var NewData;
       if (length >= 100) {
          NewData = Data.substring(0,length);
       }
       if (length == 99) {
          NewData = "0" + Data.substring(length-99,length);
       }
       if (length == 98) {
          NewData = "00" + Data.substring(length-98,length);
       }
       if (length == 97) {
          NewData = "000" + Data.substring(length-97,length);
       }
       /*
        ...
        SNIPPED FOR REALLY LONG AND REPETITIVE CODE
        ...
       */
       if (length == 2) {
          NewData = "000000000000000000000000" + "00000000000000000" + 
              "0000000000000000" + "0000000000000000" + 
              "0000000000000000000000000" + Data.substring(length-2,length);
       }
       if (length == 1) {
          NewData = "0000000000000000000000000" + "00000000000000000" + 
              "0000000000000000" + "0000000000000000" + 
              "0000000000000000000000000" + Data.substring(length-1,length);
       }
       return NewData;
}
[Advertisement] BuildMaster allows you to create a self-service release management platform that allows different teams to manage their applications. Explore how!