У меня есть простая функция, которая форматирует строку в качестве валюты - это добавление пробелов каждые 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, но это не помогло.
Я знаю, что могу найти -
в строке, и если он найден, добавьте его в начало, но я хочу этого избежать.
hum '/ (- \ d + | \ d +) (\ d {3}) /' должен делать. – Tensibai