Format Number Based on Regular Expression
Examples
{{.1234|regex_comma_number:'%.4f'}} '0.1234'
{{100|regex_comma_number:'%i'}} '100'
{{ 234.5678|regex_comma_number:'%.4f'}} '234.5678'
{{234.5678|regex_comma_number:'$%.4f'}} '$234.5678'
{{1000|regex_comma_number:'%i'}} '1,000'
{{1234.5678|regex_comma_number:'%.4f'}} '1,234.5678'
{{1234.5678|regex_comma_number:'$%.4f'}} '$1,234.5678'
{{1000000|regex_comma_number:'%i'}} '1,000,000'
{{1234567.5678|regex_comma_number:'%.4f'}} '1,234,567.5678'
{{1234567.5678|regex_comma_number:'$%.4f'}} '$1,234,567.5678'
{{-100|regex_comma_number:'%i'}} '-100'
{{-234.5678|regex_comma_number:'%.4f'}} -234.5678'
{{-234.5678|regex_comma_number:'$%.4f'}} '$-234.5678'
{{-1000|regex_comma_number:'%i'}} '-1,000'
{{-1234.5678|regex_comma_number:'%.4f'}} '-1,234.5678'
{{-1234.5678|regex_comma_number:'$%.4f'}} '$-1,234.5678'
{{-1000000|regex_comma_number:'%i'}} '-1,000,000'
{{-1234567.5678|regex_comma_number:'%.4f'}} '-1,234,567.5678'
{{-1234567.5678|regex_comma_number:'$%.4f'}} '$-1,234,567.5678'`
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | @register.filter
def regex_comma_number(value,arg):
import re
__test__ = {}
re_digits_nondigits = re.compile(r'\d+|\D+')
parts = re_digits_nondigits.findall(arg % (value,))
for i in xrange(len(parts)):
s = parts[i]
if s.isdigit():
r = []
for j, c in enumerate(reversed(s)):
if j and (not (j % 3)):
r.insert(0, ',')
r.insert(0, c)
parts[i] = ''.join(r)
break
return ''.join(parts)
|
More like this
- Template tag - list punctuation for a list of items by shapiromatron 11 months, 2 weeks ago
- JSONRequestMiddleware adds a .json() method to your HttpRequests by cdcarter 11 months, 3 weeks ago
- Serializer factory with Django Rest Framework by julio 1 year, 6 months ago
- Image compression before saving the new model / work with JPG, PNG by Schleidens 1 year, 7 months ago
- Help text hyperlinks by sa2812 1 year, 8 months ago
Comments
Please login first before commenting.