Как преобразовать форматирование числа ЕС в число JavaScript с помощью регулярных выражений

Я пытаюсь преобразовать сумму валюты в формате ЕС, скажем, 1,243,51 (равно 1243,51 в формате США), в число в javascript (это будет 1243,51).

Мне удалось найти большое количество примеров, пытающихся сделать очень похожие вещи, но я не смог их адаптировать. Кажется, мне нужно использовать регулярные выражения, о которых я не очень хорошо понимаю, но мне удалось найти некоторые предложения, которые почти справляются с этой задачей. Я нашел одно регулярное выражение, которое заменяет "," на "." и тот, который удаляет ".". Я подумал, что должен был сделать это в два шага, но проблема в том, что тот, который удаляет ".", Также усекает число за точкой. Это то, что я придумал до сих пор:

function usToEuCurrencyFormat(input) {
    var output = input.replace(/\./g, '');          //Removes dots
    output = input.replace((/,([^,]*)$/, ".$1"));   //Replaces commas with dots
    return parseFloat(output);
}

1 ответ

Решение
function usToEuCurrencyFormat(input) {
    return input.replace(/[,.]/g, function (x) { return x == "," ? "." : ","; }); }
}

Это, кажется, работает достаточно хорошо для меня (и просто parseFloat это если хочешь поплавок).

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