[JQUERY] 어떻게 jQuery를 또는 자바 스크립트와 이중으로 통화 문자열을 변환하는?
JQUERY어떻게 jQuery를 또는 자바 스크립트와 이중으로 통화 문자열을 변환하는?
해결법
-
1.이외의 모든 점 / 숫자를 제거합니다 :
이외의 모든 점 / 숫자를 제거합니다 :
var currency = "-$4,400.50"; var number = Number(currency.replace(/[^0-9.-]+/g,""));
-
2.accounting.js 길을 가야하는 것입니다. 내가 프로젝트에서 그것을 사용하고 그것을 사용하여 아주 좋은 경험을했다.
accounting.js 길을 가야하는 것입니다. 내가 프로젝트에서 그것을 사용하고 그것을 사용하여 아주 좋은 경험을했다.
accounting.formatMoney(4999.99, "€", 2, ".", ","); // €4.999,99 accounting.unformat("€ 1.000.000,00", ","); // 1000000
당신은 GitHub의에서 찾을 수 있습니다
-
3.포맷 (달러와 쉼표)를 제거하는 정규식을 사용하여 부동 소수점 number.`에 문자열을 변환에서는 parseFloat를 사용
포맷 (달러와 쉼표)를 제거하는 정규식을 사용하여 부동 소수점 number.`에 문자열을 변환에서는 parseFloat를 사용
var currency = "$1,100.00"; currency.replace(/[$,]+/g,""); var result = parseFloat(currency) + .05;
-
4.나는이 오래된 질문은 알고 있지만 추가 옵션을 제공하고 싶었다.
나는이 오래된 질문은 알고 있지만 추가 옵션을 제공하고 싶었다.
JQuery와의 세계화는 float로 문화의 특정 형식을 구문 분석 할 수있는 기능을 제공합니다.
https://github.com/jquery/globalize
EN-US에 문자열 "$ 13,042.00",와의 세계화 세트 감안할 때 :
Globalize.culture("en-US");
당신은 너무처럼 플로트 값을 구문 분석 할 수 있습니다 :
var result = Globalize.parseFloat(Globalize.format("$13,042.00", "c"));
이것은 당신을 줄 것이다 :
13042.00
그리고 당신은 다른 문화와 함께 작업 할 수 있습니다.
-
5.나는이 오래된 질문이다 알지만, CMS의 대답은 하나의 작은 작은 결함을 갖고있는 것 같아요 "."그것은 단지 통화 형식을 사용하는 경우 작동 소수 구분있다. 당신이 러시아 루블 작업해야 할 경우, 예를 들어, 문자열은 다음과 같이 표시됩니다 "1 000,00 문질러."
나는이 오래된 질문이다 알지만, CMS의 대답은 하나의 작은 작은 결함을 갖고있는 것 같아요 "."그것은 단지 통화 형식을 사용하는 경우 작동 소수 구분있다. 당신이 러시아 루블 작업해야 할 경우, 예를 들어, 문자열은 다음과 같이 표시됩니다 "1 000,00 문질러."
내 솔루션은 훨씬 덜 우아한 CMS의보다,하지만 트릭을 할해야합니다.
VAR 통화 = "1 000,00 문질러."; // 그것은뿐만 아니라 미국 스타일의 통화 문자열을 작동 VAR cur_re = /\D*(\d+|\d.*?\d)(?:\D+(\d{2}))?\D*$/; VAR 부품 = cur_re.exec (통화); VAR 번호 =에서는 parseFloat. (부분 [1] .replace (/ \ D / '') + '? + (부 [2] 부 [2] : 00)); CONSOLE.LOG (number.toFixed (2));
가정 :
그것이 의도 된 기능이 아닙니다 그리고 그것은 의존해서는 안 불구하고 정규 표현식은 심지어, "1999 달러와 99 센트"같은 것을 처리 할 수 있습니다.
이 의지 도움말 사람을 바랍니다.
-
6.이 예제를 실행 확인
이 예제를 실행 확인
VAR 통화 = "$ 1,123,456.00"; VAR 참조 번호 = (currency.replace (/ [^ 0-9 \.] + / g '')); CONSOLE.LOG (번호);
-
7.// "10.000.500,61 TL"price_to_number => 10000500.61
// "10.000.500,61 TL"price_to_number => 10000500.61
// "10000500.62"number_to_price => 10.000.500,62
JS 뿐인 : https://jsfiddle.net/Limitlessisa/oxhgd32c/
var price="10.000.500,61 TL"; document.getElementById("demo1").innerHTML = price_to_number(price); var numberPrice="10000500.62"; document.getElementById("demo2").innerHTML = number_to_price(numberPrice); function price_to_number(v){ if(!v){return 0;} v=v.split('.').join(''); v=v.split(',').join('.'); return Number(v.replace(/[^0-9.]/g, "")); } function number_to_price(v){ if(v==0){return '0,00';} v=parseFloat(v); v=v.toFixed(2).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,"); v=v.split('.').join('*').split(',').join('.').split('*').join(','); return v; }
-
8.이 제 기능입니다. 모든 통화와 함께 작동 ..
이 제 기능입니다. 모든 통화와 함께 작동 ..
function toFloat(num) { dotPos = num.indexOf('.'); commaPos = num.indexOf(','); if (dotPos < 0) dotPos = 0; if (commaPos < 0) commaPos = 0; if ((dotPos > commaPos) && dotPos) sep = dotPos; else { if ((commaPos > dotPos) && commaPos) sep = commaPos; else sep = false; } if (sep == false) return parseFloat(num.replace(/[^\d]/g, "")); return parseFloat( num.substr(0, sep).replace(/[^\d]/g, "") + '.' + num.substr(sep+1, num.length).replace(/[^0-9]/, "") ); }
사용법 : toFloat ( "$ 1,100.00") 또는 toFloat ( "1,100.00 $")
-
9.이 시도 할 수 있습니다
이 시도 할 수 있습니다
var에 STR = "$ 1112.12"; STR = str.replace ( "", ""); STR = str.replace ( "$", ""); CONSOLE.LOG (에서는 parseFloat (STR));
-
10.난, 난 그냥 어쩌면 당신은 국제 번호 형식에 대한 다음과 같은 더 광범위한 jQuery 플러그인 보는 것을 추천하고 싶어 당신이 당신의 질문에 대한 해결책을 찾을 것을 알고있다 :
난, 난 그냥 어쩌면 당신은 국제 번호 형식에 대한 다음과 같은 더 광범위한 jQuery 플러그인 보는 것을 추천하고 싶어 당신이 당신의 질문에 대한 해결책을 찾을 것을 알고있다 :
국제 번호 포맷터
-
11.
jQuery.preferCulture("en-IN"); var price = jQuery.format(39.00, "c");
출력된다 : RS. 39.00
use jquery.glob.js, jQuery.glob.all.js
-
12.이 날 및 커버 대부분의 가장자리의 경우 근무 :)
이 날 및 커버 대부분의 가장자리의 경우 근무 :)
function toFloat(num) { const cleanStr = String(num).replace(/[^0-9.,]/g, ''); let dotPos = cleanStr.indexOf('.'); let commaPos = cleanStr.indexOf(','); if (dotPos < 0) dotPos = 0; if (commaPos < 0) commaPos = 0; const dotSplit = cleanStr.split('.'); const commaSplit = cleanStr.split(','); const isDecimalDot = dotPos && ( (commaPos && dotPos > commaPos) || (!commaPos && dotSplit[dotSplit.length - 1].length === 2) ); const isDecimalComma = commaPos && ( (dotPos && dotPos < commaPos) || (!dotPos && commaSplit[commaSplit.length - 1].length === 2) ); let integerPart = cleanStr; let decimalPart = '0'; if (isDecimalComma) { integerPart = commaSplit[0]; decimalPart = commaSplit[1]; } if (isDecimalDot) { integerPart = dotSplit[0]; decimalPart = dotSplit[1]; } return parseFloat( `${integerPart.replace(/[^0-9]/g, '')}.${decimalPart.replace(/[^0-9]/g, '')}`, ); }
toFloat('USD 1,500.00'); // 1500 toFloat('USD 1,500'); // 1500 toFloat('USD 500.00'); // 500 toFloat('USD 500'); // 500 toFloat('EUR 1.500,00'); // 1500 toFloat('EUR 1.500'); // 1500 toFloat('EUR 500,00'); // 500 toFloat('EUR 500'); // 500
-
13.
$ 150.00 Fr. 150.00 € 689.00
세 가지 통화 기호보다 우선은 또한 다른 사람을 위해 그것을 할 수 있습니다 위해 나는 테스트했습니다.
var price = Fr. 150.00; var priceFloat = price.replace(/[^\d\.]/g, '');
정규 표현식은 숫자 또는 period.So 아닌 모든 것을 제거합니다보다도 당신이 다음과 같이 가격을 얻을 것이다 출력 콘솔 경우 통화 기호없이하지만, "천의 150.00"의 경우 문자열을 얻을 수 있습니다
console.log('priceFloat : '+priceFloat); output will be like priceFloat : .150.00
당신의 인덱스를 확인할 수 있도록하는 잘못이다 "." 그 분할하고 적절한 결과를 얻을.
if (priceFloat.indexOf('.') == 0) { priceFloat = parseFloat(priceFloat.split('.')[1]); }else{ priceFloat = parseFloat(priceFloat); }
-
14.
function NumberConvertToDecimal (number) { if (number == 0) { return '0.00'; } number = parseFloat(number); number = number.toFixed(2).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1"); number = number.split('.').join('*').split('*').join('.'); return number; }
-
15.
var parseCurrency = function (e) { if (typeof (e) === 'number') return e; if (typeof (e) === 'string') { var str = e.trim(); var value = Number(e.replace(/[^0-9.-]+/g, "")); return str.startsWith('(') && str.endsWith(')') ? -value: value; } return e; }
-
16.이 기능은 어느 로케일 및 통화 설정을 작동합니다 :
이 기능은 어느 로케일 및 통화 설정을 작동합니다 :
function getNumPrice(price, decimalpoint) { var p = price.split(decimalpoint); for (var i=0;i<p.length;i++) p[i] = p[i].replace(/\D/g,''); return p.join('.'); }
이 말은 소수점 문자를 알고 가정 (나는 그것을 얻을 수 있도록, 내 경우에는 로케일이 PHP에서 설정되어 PHP는 에코 cms_function_to_get_decimal_point ();?>).
-
17.다음은 간단한 기능입니다 -
다음은 간단한 기능입니다 -
기능 getNumberFromCurrency (통화) { 반환 번호 (currency.replace (/ [$,] / g '')) } CONSOLE.LOG (getNumberFromCurrency ( '$ 1,000,000.99')) // 1000000.99
from https://stackoverflow.com/questions/559112/how-to-convert-a-currency-string-to-a-double-with-jquery-or-javascript by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] innerText와에 의해 요소를 얻는 방법 (0) | 2020.10.07 |
---|---|
[JQUERY] window.open에 바이 패스 팝업 차단기 JQuery와에서는 event.preventDefault ()가 집합입니다 (0) | 2020.10.07 |
[JQUERY] 어떻게 .reset와 jQuery를 사용하여 양식을 재설정하는 () 메소드 (0) | 2020.10.07 |
[JQUERY] jQuery를 - 요소가 DOM에서 제거 트리거 이벤트 (0) | 2020.10.07 |
[JQUERY] 요소 내에서 마우스 위치를 얻을 수 JQuery와 (0) | 2020.10.07 |