我有一些文本包含美元金額和其他文本。一些美元金額有其他美元金額。下面是一些例子:
1000高達15000
$ 40
我希望在每個號碼的開頭加上$如果沒有按已經不存在了。我嘗試:
function convertToMoney(text) {
if (!text.match(/\$/)) {
return text.replace(/\b([\d,]+)\b/g, function(d) { return('$'+d); });
}
return text;
}
如果JS們lookbehind我會用
function convertToMoney(text) {
return text.replace(/(?<!\$)\b(?:\d)/g, '$');
}
我可以簡化我的長期解決方案?
我可以使用1000 up to $4000
嗎?
UPDATE
應用@ jfriend00解決方案後,我的錢過濾器看起來像這樣:
function moneyFilter(text)
var ret = text;
if (ret) {
ret = ret
.replace(/\.\d\d/g, '') // remove pennies
.replace(/\B(?=(?:\d{3})+(?!\d))/g, ',') // add comma
.replace(/(\$?)(\d[\d,]+)/g, "$$$2"); // add dollar sign
}
return ret;
})
Thx。我也想知道如何擺脫替代的美元符號。 – zhon