Javascript converts a number into a string in the currency format, javascript currency

Source: Internet
Author: User

Javascript converts a number into a string in the currency format, javascript currency

Here, the first method is to use JavaScript to convert the number to the format of the currency string (parameter: retain decimal places, currency symbols, integer part Of the thousands separator, decimal separator)

Here, the second method is to convert the currency character to a pure numeric string using a simple regular expression, and then convert the string to a numeric number.
JavaScript Money Format (extended by prototype)

// Extend the default Number object with a formatMoney() method:// usage: someVar.formatMoney(decimalPlaces, symbol, thousandsSeparator, decimalSeparator)// defaults: (2, "$", ",", ".")Number.prototype.formatMoney = function (places, symbol, thousand, decimal) {  places = !isNaN(places = Math.abs(places)) ? places : 2;  symbol = symbol !== undefined ? symbol : "$";  thousand = thousand || ",";  decimal = decimal || ".";  var number = this,    negative = number < 0 ? "-" : "",    i = parseInt(number = Math.abs(+number || 0).toFixed(places), 10) + "",    j = (j = i.length) > 3 ? j % 3 : 0;  return symbol + negative + (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) : "");};

Here are some conversion instances:

// Default usage and custom precision/symbol :var revenue = 12345678;alert(revenue.formatMoney()); // $12,345,678.00alert(revenue.formatMoney(0, "HK$ ")); // HK$ 12,345,678// European formatting:var price = 4999.99;alert(price.formatMoney(2, "?", ".", ",")); // ?4.999,99// It works for negative values, too:alert((-500000).formatMoney(0, "£ ")); // £ -500,000

Currency to number-removing money formatting (filter using regular expressions)

var price = (12345.99).formatMoney(); // "$12,345.99"// Remove non-numeric chars (except decimal point/minus sign):priceVal = parseFloat(price.replace(/[^0-9-.]/g, '')); // 12345.99

This method is only applicable to the mode where the decimal separator is ".". If the decimal separator is "," The regular expression is/[^ 0-9-,]/g.

 Versions extended by Number without prototype:

// To set it up as a global function:function formatMoney(number, places, symbol, thousand, decimal) {  number = number || 0;  places = !isNaN(places = Math.abs(places)) ? places : 2;  symbol = symbol !== undefined ? symbol : "$";  thousand = thousand || ",";  decimal = decimal || ".";  var negative = number < 0 ? "-" : "",    i = parseInt(number = Math.abs(+number || 0).toFixed(places), 10) + "",    j = (j = i.length) > 3 ? j % 3 : 0;  return symbol + negative + (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) : "");}// To create it as a library method:myLibrary.formatMoney = function (number, places, symbol, thousand, decimal) {  /* as above */}// Example usage:formatMoney(54321); // $54,321myLibrary.formatMoney(12345, 0, "£ "); // £ 12,345

The above is all about the content of this article. For more information about the JavaScript syntax, see: JavaScript reference tutorial and JavaScript code style guide. I also hope you can provide more support.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.