Удаление запятых и нечисловых символов из строки в javascript

должно быть просто, но RegEx никогда не кажется :). Может ли кто-нибудь помочь в том, как удалить запятую и любые нечисловые символы из строки? Спасибо. Он находится в блоке var result. Очевидно, когда вы вводите оператора в номер, он взрывается. num1 и num2. Мне также нужно убрать все тире.

 function calcTotalRetailVal() {
    var num1 = $oneTimeCostField.val();
    var num2 = $recurringTotalCostField.val();
   //In the replace method
    var result = parseFloat(num1.replace(/,/g, '')) + parseFloat(num2.replace(/,/g, ''));
    if (!isNaN(result)) {
        $totalRetailAmountField.text('$' + result.toFixed(2));
    }   
}
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
2 373
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

const clearText = plainText.replace(/\D/g,'')

\D будет соответствовать всем нецифрам, но если вам нужно сохранить точки и тире:

replace(/[^\d.-]/g, '')

Это также удалит знак минут, необходимый для отрицательных чисел, и десятичную точку.

Barmar 10.04.2019 22:39

Спасибо, мне также нужно убрать тире b/c на случай, если кто-то введет отрицательную сумму.

erics15 10.04.2019 22:42

заменить(/[^\d.]/g, '') затем

Dupocas 10.04.2019 22:43

Мне также нужно убрать запятые (извините, что беспокою)

erics15 10.04.2019 22:51

replace(/[^\d,-]/g, '') удаляет дефисы и запятые

Dupocas 10.04.2019 22:56

С регулярным выражением. num1.replace(/[^0-9.]/, '')

Вы также должны разрешить знак минуты для отрицательных чисел.

Barmar 10.04.2019 22:39
Ответ принят как подходящий

Вы должны использовать это регулярное выражение /(,|[^\d.-]+)+/g для обнаружения запятых и любых нечисловых значений, таких как символы, операторы, пробелы в группах и быстрее, чем индивидуальное обнаружение. отрицательное число (ex -1) и . будет включен.

Я переписываю ваш код.

function calcTotalRetailVal() {
    var num1 = $oneTimeCostField.val();
    var num2 = $recurringTotalCostField.val();
   //In the replace method
    var result = parseFloat(num1.replace(/(,|[^\d.-]+)+/g, '')) + parseFloat(num2.replace(/(,|[^\d.-]+)+/g, ''));
    if (!isNaN(result)) {
        $totalRetailAmountField.text('$' + result.toFixed(2));
    }   
}

Другие вопросы по теме