金額とその他のテキストを含むテキストがあります。一部のドル金額には $ がありますが、その他にはありません。ここではいくつかの例を示します。
1,000 ~ 15,000
$40
4000
$ が存在しない場合は、各番号の先頭に $ を追加したいと思います。私の試み:
function convertToMoney(text) {
if (!text.match(/\$/)) {
return text.replace(/\b([\d,]+)\b/g, function(d) { return('$'+d); });
}
return text;
}
JS に後読みがある場合は、使用します
function convertToMoney(text) {
return text.replace(/(?<!\$)\b(?:\d)/g, '$');
}
長いソリューションを単純化できますか?
で動作させることはできます1000 up to $4000
か?
アップデート
@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;
})