Created
May 28, 2013 20:13
-
-
Save steveosoule/5665723 to your computer and use it in GitHub Desktop.
javascript-money-format.js
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Money Formatting | |
Number.prototype.formatMoney = function (c, d, t) { | |
var n = this, | |
c = isNaN(c = Math.abs(c)) ? 2 : c, | |
d = d == undefined ? "," : d, | |
t = t == undefined ? "." : t, | |
s = n < 0 ? "-" : "", | |
i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", | |
j = (j = i.length) > 3 ? j % 3 : 0; | |
return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : ""); | |
}; | |
// pass a number in to return a currency formatted string | |
function moneyFormat(num) { | |
num = num.toString(); | |
if (num === '') { | |
num = '$0.00'; | |
} else if (!num.search('$')) { | |
num = "$" + parseFloat(num).formatMoney(2, '.', ','); | |
} else { | |
num = "$" + parseFloat(num.replace(/[^\d\.-]/g, '')).formatMoney(2, '.', ','); | |
} | |
return num; | |
} | |
// Pass in a currency formatted amount as string to return a number | |
function unMoneyFormat(amount) { | |
return Number(amount.replace(/[^0-9.-]+/g, '')).toFixed(2); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment