Javascript converts numeric values to the amount format (separated by kilobytes and automatically added decimal points), and javascript decimal points
In the project, if a number similar to '123' needs to be converted into the accounting format, '123' is automatically filled when the number of sub-places is separated by two digits after the decimal point is not enough, several implementation methods have been recorded
Ps: if you do not consider the decimal point, the quickest way is:
"12345678". replace (/[0-9] +? (? = (? :( [0-9] {3}) + $)/g, function (a) {return a + ','}); // OUTPUT 12 345 678
1. implement it in a loop
Function formatNum (str) {var newStr = ""; var count = 0; if (str. indexOf (". ") =-1) {for (var I = str. length-1; I> = 0; I --) {if (count % 3 = 0 & count! = 0) {newStr = str. charAt (I) + "," + newStr;} else {newStr = str. charAt (I) + newStr;} count ++;} str = newStr + ". 00 "; // automatically add two consoles after the decimal point. log (str)} else {for (var I = str. indexOf (". ")-1; I> = 0; I --) {if (count % 3 = 0 & count! = 0) {newStr = str. charAt (I) + "," + newStr; // if it is a multiple of 3, add ","} else {newStr = str. charAt (I) + newStr; // concatenate characters one by one} count ++;} str = newStr + (str + "00 "). substr (str + "00 "). indexOf (". "), 3); console. log (str)} formatNum ('100. 13213. 24 '); // output 13,213.34 formatNum ('100. 000. 2 '); // output 132,134.20 formatNum ('20160301'); // output 132134 formatNum ('20160301. 236 '); // output 132,134.236
2. Use Regular Expressions(I still have to judge the number of digits after the decimal point. If you have a more intelligent regular expression, please let me know ~)
Function regexNum (str) {var regex =/(\ d )(? = (\ D) + (?! \ D)/g; if (str. indexOf (". ") =-1) {str = str. replace (regex, ',') + '. 00'; console. log (str)} else {var newStr = str. split ('. '); var str_2 = newStr [0]. replace (regex, ','); if (newStr [1]. length <= 1) {// if there is only one digit after the decimal point, str_2 = str_2 + '. '+ newStr [1] + '0'; console. log (str_2)} else if (newStr [1]. length> 1) {// var decimals = newStr [1] When two or more decimal points exist. substr (0, 2); var srt_3 = str_2 + '. '+ decimals; console. log (srt_3) }}; regexNum ('000000'); // output 23424224, 224.00 regexNum ('2017. 2 '); // output 2, 42, 224.20 regexNum ('2017. 22 '); // output 2, 42, 224.22 regexNum ('2017. 233 '); // output 224.23
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.