我需要幫助來處理以下情況: 我有一些值需要在頁面中求和,但這些值的字段是動態創建的(所以這些領域)。如何在javascript中獲取字符串的貨幣
這些值可以以不同的格式顯示(取決於貨幣或小數位),即:R $ 20.000,2(小數點後1位)或US $ 20.000,18(2位小數位)或€20,000.180(3位小數位和帝國制度)。
我做了什麼至今:
由於字段是動態創建的,我添加了一個CSS類的,表格中的風格(他們是通過生成的每個循環),然後我用我創建了一個javascript原型類,用於將字符串轉換爲浮點型(如果我通過R $ 20.000,02或R $ 20,000.02並返回20000.02)。下面的代碼在我需要求和的頁面中生成的所有字段中迭代。
<script>
var sum = 0;
jQuery(".countTotalEffectiveMonth").each(function(){
sum += localeUtils.s2f(jQuery(this).text().replace("R$",""));
jQuery("#ScenarioCurrentYearSavings").text(sum);
})
alert(sum);
</script>
問題:
1:我硬編碼的貨幣( 「R $」, 「」)(從字符串中刪除它,並計算)。關於我該怎麼做的任何想法? 我試圖使用正則表達式,但我失敗:(我只能使用這個正則表達式(/ [^ 0-9 - ]/g)刪除貨幣,但我不知道如何存儲它,以便我可以連接它在和結束
更新:
通過以下保羅S.的做法,我這樣做:
var val;
var re = /^([a-z]+)([^\d])([\d.,]+)$/i;
var m;
jQuery(".countTotalEffectiveMonth").each(function(){
m = jQuery(this).text();
val = re.exec(m);
val += val[3].replace(/,/g, '');
alert(val[1]+val[3]);
jQuery("#ScenarioCurrentYearSavings").text(val[1]+val[3]);
});
它說,val爲null,但我印在執行val = re.exec(m);
之前,它會打印一個像這樣的號碼R $ 91,67,但他們I收到TypeError:val爲null。
你能看到有什麼問題嗎?
你有不同的貨幣符號硬編碼或只有R $? –
假設我正確地理解了你,你可以將貨幣存儲在一個var中,並將其附加到結果或結果的開頭,以便var + sum或sum + var – Speedy
我沒有硬編碼符號,@ kasperTaeymans(它們是所有根據用戶區域生成...我硬編碼它在我的JavaScript函數進行測試,如果它會工作(它做!:))。但是我試圖找到一種方法來通過javascript來存儲這個信息,我也試圖直接從用戶對象中發送它,但它不容易找到它。 – periback2