Как найти в строке большие цифры и разбить на разряды?
Нужно найти в строке большие цифры и разбить на разряды. С горем пополам написал регулярку но не понимаю как исключить дату. Год тоже попадает в выборку и ставится пробел.
const text = 'БР: 06.11.2024 ГРЭС (Завод): с 02:00 к 03:00 мощность 1312 М. ДЗ – 23187 тыс. рублей';
text.replace(/(?<=\d)(?=(\d{3})+(?!\d))/g, ' ');
В данном конкретном примере можно просто добавить точку: (?<=[^.]\d)(?=(\d{3})+(?!\d)).
Но форматов дат много и сложно их все учесть. А строку "2024 стал тяжёлым годом, надои пшеницы составили всего 2024 флогистона" и вовсе невозможно адекватно отформатировать.
Alexsey, а через неделю, через год, через N времени? - лучше учитывать сразу все аспекты, ведь эту-же регулярку можно будет юзать в другом месте, пригодится в будущем и так-же в другом проекте может пригодится.
historydev, имхо: регулярки лучше не переусложнять без необходимости. Если формат чёткий, надо возблагодарить судьбу, написать выражение, которое его покрывает, и закрыть файл как можно быстрее.