Changeset 8577
- Timestamp:
- 08/26/08 02:56:32 (3 months ago)
- Files:
-
- django/trunk/django/template/defaultfilters.py (modified) (1 diff)
- django/trunk/tests/regressiontests/templates/filters.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/trunk/django/template/defaultfilters.py
r8535 r8577 63 63 capfirst = stringfilter(capfirst) 64 64 65 _js_escapes = ( 66 ('\\', '\\\\'), 67 ('"', '\\"'), 68 ("'", "\\'"), 69 ('\n', '\\n'), 70 ('\r', '\\r'), 71 ('\b', '\\b'), 72 ('\f', '\\f'), 73 ('\t', '\\t'), 74 ('\v', '\\v'), 75 ('</', '<\\/'), 65 _base_js_escapes = ( 66 ('\\', r'\x5C'), 67 ('\'', r'\x27'), 68 ('"', r'\x22'), 69 ('>', r'\x3E'), 70 ('<', r'\x3C'), 71 ('&', r'\x26'), 72 ('=', r'\x3D'), 73 ('-', r'\x2D'), 74 (';', r'\x3B') 76 75 ) 76 77 # Escape every ASCII character with a value less than 32. 78 _js_escapes = (_base_js_escapes + 79 tuple([('%c' % z, '\\x%02X' % z) for z in range(32)])) 80 77 81 def escapejs(value): 78 """ Backslash-escapes characters for use in JavaScript strings."""82 """Hex encodes characters for use in JavaScript strings.""" 79 83 for bad, good in _js_escapes: 80 84 value = value.replace(bad, good) django/trunk/tests/regressiontests/templates/filters.py
r8556 r8577 263 263 'autoescape-stringfilter03': (r'{{ safe|capfirst }}', {'safe': SafeClass()}, 'You > me'), 264 264 'autoescape-stringfilter04': (r'{% autoescape off %}{{ safe|capfirst }}{% endautoescape %}', {'safe': SafeClass()}, 'You > me'), 265 266 'escapejs01': (r'{{ a|escapejs }}', {'a': 'testing\r\njavascript \'string" <b>escaping</b>'}, 'testing\\x0D\\x0Ajavascript \\x27string\\x22 \\x3Cb\\x3Eescaping\\x3C/b\\x3E'), 267 'escapejs02': (r'{% autoescape off %}{{ a|escapejs }}{% endautoescape %}', {'a': 'testing\r\njavascript \'string" <b>escaping</b>'}, 'testing\\x0D\\x0Ajavascript \\x27string\\x22 \\x3Cb\\x3Eescaping\\x3C/b\\x3E'), 265 268 } 266 269
