Я хочу удалить запятые из строки и рассчитать их с помощью JavaScript.
Например, у меня есть эти два значения:
100 000,00
500,000.00
Теперь я хочу удалить запятые из этой строки и хочу получить общее количество.
Ответ 1
Чтобы удалить запятые, вам нужно будет использовать replace в строке. Чтобы преобразовать в float, чтобы вы могли выполнить математику, вам понадобится parseFloat:
var total = parseFloat('100,000.00'.replace(/,/g, '')) +
parseFloat('500,000.00'.replace(/,/g, ''));
Ответ 2
Связанный ответ, но если вы хотите запустить очистку ввода значений пользователем в форму, вот что вы можете сделать:
const numFormatter = new Intl.NumberFormat('en-US', {
style: "decimal",
maximumFractionDigits: 2
})
// Good Inputs
parseFloat(numFormatter.format('1234').replace(/,/g,"")) // 1234
parseFloat(numFormatter.format('123').replace(/,/g,"")) // 123
// 3rd decimal place rounds to nearest
parseFloat(numFormatter.format('1234.233').replace(/,/g,"")); // 1234.23
parseFloat(numFormatter.format('1234.239').replace(/,/g,"")); // 1234.24
// Bad Inputs
parseFloat(numFormatter.format('1234.233a').replace(/,/g,"")); // NaN
// Edge Cases
parseFloat(numFormatter.format(true).replace(/,/g,"")) // 1
parseFloat(numFormatter.format(false).replace(/,/g,"")) // 0
parseFloat(numFormatter.format(NaN).replace(/,/g,"")) // NaN
Используйте международную дату по местному времени через format. Это очищает любые плохие входы. В настоящее время нет способа удалить запятые как часть локали (по состоянию на 10.12.19), поэтому вы можете использовать команду regex для удаления запятых с помощью replace.
ParseFloat преобразует определение этого типа из строки в число