Видаліть коми з рядка за допомогою JavaScript


97

Я хочу видалити коми з рядка і обчислити цю суму за допомогою JavaScript.

Наприклад, у мене є ці два значення:

  • 100 000,00
  • 500 000,00

Тепер я хочу видалити коми з цього рядка і хочу загальну суму цієї суми.

Відповіді:


172

Щоб видалити коми, вам потрібно буде використовувати replaceрядок. Щоб перетворити на плаваючу, щоб ви могли рахувати математику, вам знадобиться parseFloat:

var total = parseFloat('100,000.00'.replace(/,/g, '')) +
            parseFloat('500,000.00'.replace(/,/g, ''));

3
Так, потрібно поєднувати replaceі parseFloat. ось короткий тестовий приклад: jsfiddle.net/TtYpH
Майстер тіней - вухо для вас

1
Настав 2017 рік, чи немає можливості перейти до і з мовного рядка? Як змінити цю функцію? developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… . Опублікував тут окреме запитання: stackoverflow.com/questions/41905406/…
Коста,

4

Відповідна відповідь, але якщо ви хочете запустити очищення користувача, який вводить значення у форму, ось що ви можете зробити:

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
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.