title: Javascript Function to Format as Money
body: <p>I have a script where I pass it a string, and it'll return that string formatted as dollars. So if I send it "10000" it'll return "$10,000.00" Now the problem is that when I send it "1000000" ($1 million) it returns "$1,000.00" because it's only setup to parse based on one set of zeros. Here's my script, how can I adjust it to account for two sets of zeros ($1 million) ??</p>
  
  <pre><code>String.prototype.formatMoney = function(places, symbol, thousand, decimal) {
  if((this).match(/^\$/) &amp;&amp; (this).indexOf(',') != -1 &amp;&amp; (this).indexOf('.') != -1) {
      return this;
  }
      places = !isNaN(places = Math.abs(places)) ? places : 2;
      symbol = symbol !== undefined ? symbol : "$";
      thousand = thousand || ",";
      decimal = decimal || ".";
  var number = Number(((this).replace('$','')).replace(',','')), 
      negative = number &lt; 0 ? "-" : "",
      i = parseInt(number = Math.abs(+number || 0).toFixed(places), 10) + "",
      j = (j = i.length) &gt; 3 ? j % 3 : 0;
  return negative + symbol + (j ? i.substr(0, j) + thousand : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + thousand) + (places ? decimal + Math.abs(number - i).toFixed(places).slice(2) : ""); };
  </code></pre>
  
  <p>Thanks in advance for any useful information!</p>