Login

Regex Comma Number

Author:
petry
Posted:
October 24, 2008
Language:
Python
Version:
1.0
Tags:
templatetag regex format comma number
Score:
2 (after 2 ratings)

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

  1. format_thousands by cootetom 3 years, 9 months ago
  2. truncatechars filter by semente 5 years, 7 months ago
  3. Number generator to autofill a field by pizte 4 years, 9 months ago
  4. A RegexpField that clean the regex match using the desired format by nasp 4 years, 7 months ago
  5. Currency filter by kljensen 7 years, 3 months ago

Comments

Please login first before commenting.