2012-09-29 2 views
2

EU 서식 통화 금액을 1.243,51 (미국 서식의 경우 1,243.51)에서 자바 스크립트의 숫자 (1243.51)로 변환하려고합니다.정규식을 사용하여 EU 번호 서식을 자바 스크립트 번호로 변환하는 방법

나는 매우 유사한 것들을 시도하는 수많은 예제를 발견 할 수 있었지만 그것을 적응시킬 수 없었다. regex를 사용해야 할 필요가있는 것 같습니다. 나는 그것을 많이 이해하지 못했지만, 거의 작업을 수행 할 수있는 몇 가지 제안을 찾을 수있었습니다. 나는 ","을 "."로 대체하는 하나의 정규식을 찾았습니다. "."을 제거하는 것. 나는 두 단계로해야한다고 생각했지만 문제는 "."을 제거하는 것이 점 뒤에있는 숫자를 잘라 버리는 것입니다. 이것은 내가 지금까지 해낸 것입니다 :

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

답변

3
function usToEuCurrencyFormat(input) { 
    return input.replace(/[,.]/g, function (x) { return x == "," ? "." : ","; }); } 
} 

이 나를 위해 충분히 잘 작동하는 것 같다 (그냥 parseFloat을 당신은 플로트를 원하는 경우).

+0

좋아요! 저건 완벽 해! 나는 당신이 메서드를 연결하는 방법을 좋아하고 실제로 정규 표현식이하는 일을 실제로 이해한다. :) – funkylaundry

+0

소수점 이하의 숫자에는 작동하지 않는다고 생각한다. 매우 위험한 것으로 보이는 usToCurencyFormat ("10,000.98") => "10.00098"처럼 ... – Gagan

+0

@Gagan 맞아, 그걸 고려해 볼 대답을 고쳤어. – rfw