feat(currencyFilter): trim whitespace around an empty currency symbol
In most locales, this won't make a difference (since they do not have whitespace around their currency symbols). In locales where there is a whitespace separating the currency symbol from the number, it makes sense to also remove such whitespace if the user specified an empty currency symbol (indicating they just want the number). Fixes #15018 Closes #15085 Closes #15105
This commit is contained in:
committed by
George Kalpakas
parent
22450e5b7c
commit
62743a54b7
@@ -68,11 +68,14 @@ function currencyFilter($locale) {
|
||||
fractionSize = formats.PATTERNS[1].maxFrac;
|
||||
}
|
||||
|
||||
// If the currency symbol is empty, trim whitespace around the symbol
|
||||
var currencySymbolRe = !currencySymbol ? /\s*\u00A4\s*/g : /\u00A4/g;
|
||||
|
||||
// if null or undefined pass it through
|
||||
return (amount == null)
|
||||
? amount
|
||||
: formatNumber(amount, formats.PATTERNS[1], formats.GROUP_SEP, formats.DECIMAL_SEP, fractionSize).
|
||||
replace(/\u00A4/g, currencySymbol);
|
||||
replace(currencySymbolRe, currencySymbol);
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -186,6 +186,19 @@ describe('filters', function() {
|
||||
|
||||
expect(currency(1.07)).toBe('$1.1');
|
||||
}));
|
||||
|
||||
it('should trim whitespace around the currency symbol if it is empty',
|
||||
inject(function($locale) {
|
||||
var pattern = $locale.NUMBER_FORMATS.PATTERNS[1];
|
||||
pattern.posPre = pattern.posSuf = ' \u00A4 ';
|
||||
pattern.negPre = pattern.negSuf = ' - \u00A4 - ';
|
||||
|
||||
expect(currency(+1.07, '$')).toBe(' $ 1.07 $ ');
|
||||
expect(currency(-1.07, '$')).toBe(' - $ - 1.07 - $ - ');
|
||||
expect(currency(+1.07, '')).toBe('1.07');
|
||||
expect(currency(-1.07, '')).toBe(' -- 1.07 -- ');
|
||||
})
|
||||
);
|
||||
});
|
||||
|
||||
describe('number', function() {
|
||||
|
||||
Reference in New Issue
Block a user