我有一个简单的函数,它将字符串格式化为货币 - 它每隔3个字符添加一次空格:
function addSpace(n) {
var rx = /(\d+)(\d{3})/;
return String(n).replace(/^\d+/, function (w) {
while (rx.test(w)) {
w = w.replace(rx, '$1 $2');
}
return w;
});
}
所以当我像这样使用它时:
addSpace("1234567.89")
我明白了:
"1 234 567.89"
但我不能为负数得到相同的行为。
我想-1 234 567.89
addSpace("-1234567.89")
我应该如何更改功能以获得该结果?我尝试在rx开头添加-?
,但这没有帮助。
我知道我可以在字符串中搜索-
,如果找到则将其添加到开头,但我想避免这种情况。