Javascript RegExp вставлять запятую каждые три цифры в числе до разделительной точки
Например у нас есть число 1000000.0000000 (миллион, округленный до 7 цифр после нуля). нужно написать регулярку, которая вставляет запятую каждые 3 цифры до разделительной точки, чтобы получилось следующим образом 1,000,000.0000000
Ответы (1 шт):
Автор решения: Wiktor Stribiżew
→ Ссылка
Вы можете использовать
function numberWithCommas(x) {
return x.replace(/\B(?<!\.\d*)(?=(\d{3})+(?!\d))/g, ",");
}
console.log(numberWithCommas("1000000.0000000"));
// => 1,000,000.0000000
См. этот ответ на англоязычном SO и пример работы регулярного выражения.
Объяснение шаблона
\B- позиция в строке, противоположная границе слова (т.е. между двух буквенно-цифровых или между двух небуквенно-цифровых символов, т.е. тут кокретно между двух цифр)(?<!\.\d*)- позиция в строке, сразу перед которой нет., за которой следует ноль и более цифр(?=(\d{3})+(?!\d))- позиция в строке, сразу за которой следует одна и более последовательностей из трёх цифр, за которыми не следует ещё одна цифра.