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
- Add Toggle Switch Widget to Django Forms by OgliariNatan 1 month, 4 weeks ago
 - get_object_or_none by azwdevops 5 months, 2 weeks ago
 - Mask sensitive data from logger by agusmakmun 7 months, 2 weeks ago
 - Template tag - list punctuation for a list of items by shapiromatron 1 year, 9 months ago
 - JSONRequestMiddleware adds a .json() method to your HttpRequests by cdcarter 1 year, 9 months ago
 
Comments
Please login first before commenting.