Я хочу удалить запятые из строки и вычислить их количество с помощью JavaScript.
Например, у меня есть эти два значения:
- 100 000,00
- 500 000,00
Теперь я хочу удалить запятые из этой строки и получить общую сумму.
javascript
Канак Вагела
источник
источник
replace
иparseFloat
. вот быстрый тестовый пример: jsfiddle.net/TtYpHСвязанный ответ, но если вы хотите запустить очистку пользователя, вводящего значения в форму, вот что вы можете сделать:
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 parseFloat(numFormatter.format('$1234.23').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
. Это очищает все плохие входы, если они есть, возвращает строку, которуюNaN
вы можете проверить. В настоящее время нет возможности удалить запятые как часть локали (по состоянию на 10.12.19) , поэтому вы можете использовать команду регулярного выражения для удаления запятых с помощьюreplace
.ParseFloat
преобразует определение этого типа из строки в числоЕсли вы используете React, ваша функция вычисления может выглядеть так:
updateCalculationInput = (e) => { let value; value = numFormatter.format(e.target.value); // 123,456.78 - 3rd decimal rounds to nearest number as expected if(value === 'NaN') return; // locale returns string of NaN if fail value = value.replace(/,/g, ""); // remove commas value = parseFloat(value); // now parse to float should always be clean input // Do the actual math and setState calls here }
источник