Удаление запятых и нечисловых символов из строки в JavaScript - PullRequest
0 голосов
/ 10 апреля 2019

должно быть простым, но RegExs никогда не кажутся :).Может кто-нибудь помочь с тем, как вырезать из строки запятую и любые нечисловые символы?Благодарю.Это в блоке 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));
    }   
}

Ответы [ 3 ]

2 голосов
/ 10 апреля 2019
const clearText = plainText.replace(/\D/g,'')

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

replace(/[^\d.-]/g, '')
1 голос
/ 10 апреля 2019

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...