[英]Removing currency symbol and replacing comma with point using pure javascript
我想使用javascript正則表達式刪除貨幣符號並用點替換數字逗號。 我有這樣的價值;
199,00 kr
我想像199.00
我使用了此腳本,但無法正常工作。
val.replace(/[^\d]/g, '');
使用此工具,我可以刪除貨幣,但它的輸出也為19900
我這樣嘗試
var val2 = val.replace(/,/g, '.')
var val2 = val2.replace(/[^\d]/g, '');
但這又使輸出為19900
請告知我我做錯了。
這種情況下最簡單的正則表達式可以是:
'199,00 kr'.replace(/(\d+),(\d+).*/, '$1.$2')
您可能想按逗號分隔字符串,然后替換每個子字符串,然后按點連接,這樣您就不會在替換期間刪除逗號或點:
val.split(",").map(str => str.replace(/[^\d]/g, '')).join(".")
您可以在捕獲組中捕獲數字,並將點和空格與kr
匹配。 在開頭和結尾使用單詞邊界 \\'b
。
在替換使用組1中,點,組2: $1.$2
var val2 = "199,00 kr"; val2 = val2.replace(/\\b(\\d+),(\\d+)\\s*kr\\b/g, '$1.$2'); console.log(val2);
我會建議:
result = subject.replace(/(\d+),(\d+)[\s\S]*/g, "$1.$2");
此版本掃描文本以查找類似於貨幣的任何內容,並在其上運行替換功能。
對於將來的極端情況,這很容易修改。
function fixPrices(txt) { return txt .replace(/\\d*\\,*\\d* kr\\b/igm, function(subject) { return subject .replace(",", '.') .replace("kr", '') .trim(); }); } //TEST var txt = "Hej min is koster 199,00 kr, men er det ikke lidt meget?\\nJeg syntes den b\ør koste 20 kr, 20,5 kr eller bare ,5 kr!"; console.log(txt); console.log(fixPrices(txt));
更加靈活的替代方法(不處理+/-符號):
const extractNumber = s => s.replace(/\\D+/g, m => m == ',' ? '.' : ''); console.log( extractNumber('199,00 kr') ) // "199.00" console.log( extractNumber('199 kr') ) // "199" console.log( extractNumber('123.456,00 kr') ) // "123456.00"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.