В проекте я столкнулся с номером, аналогичным «450000», необходимо преобразовать в формат, используемый для бухгалтерского учета, «450 000,00», который автоматически заполнится, если не хватает двух цифр после тысячи и десятичных точек. Несколько методов реализации были записаны.
PS: Если вы не рассматриваете следующие десятичные очки, самый быстрый способ:
"12345678" .Replace (/[0-9]+? (? = (? // Выход 12 345 678
1. Реализовать в цикле
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"; // Автоматически заполнять две десятичные точки консоли.log (str)} else {for (var i = str.indexof (".")-1; i> = 0; i-) {if (count % 3 == 0 && count! = 0) {newstr = str.charat (i) + "," + newstr; // Если вы столкнетесь с кратным 3, добавьте "," Sign} else {newstr = str.charat (i) + newstr; // подключить один за другим} count ++; } str = newstr + (str + "00"). substr ((str + "00"). indexof ("."), 3); console.log (str)}} formatnum ('13213.24'); // Выход 13 213,34Formatnum ('132134.2'); // Выход 132,134.20formatnum ('132134'); // Выход 132,134,00Formatnum ('132134.236'); // Вывод 132,134.2362. Используйте регулярность (необходимо ли судить о количестве цифр после десятичной точки самостоятельно? Пожалуйста, уведомите меня, если есть более умные правила ~)
функция regexnum (str) {var regex =/(/d) (? = (/d/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) {// Когда есть только один после десятичной точки str_2 = str_2 + '.'. '.' + Newstr [1] + '0'; console.log (str_2)} else if (newstr [1] .length> 1) {// Когда более двух десятичных десятиц - var decimals = Newstr [1] .substr (0,2); var srt_3 = str_2 + '.' + десятичные дзеры; console.log (srt_3)}}}; regexnum ('23424224'); // Выход 2,42,224,00 regexnum ('234242224.2'); // Выход 2,42,224.20Regexnum ('23424222.22'); // Выход 2,42,224.222REGEXNUM ('23424222.23'); // Вывод 2,42,224.23Вышеуказанное - все содержание этой статьи. Для получения дополнительной информации о JavaScript вы можете проверить: «Справочный учебник JavaScript» и «Руководство по стилю кода JavaScript». Я также надеюсь, что все будут поддерживать Wulin.com больше.