mirror of https://github.com/django/django.git
Fixed #21725 -- Fixed JavaScript quoting encoding.
Thanks to nedbatchelder for the report.
This commit is contained in:
parent
44814e78cc
commit
1c1dffca75
|
@ -343,7 +343,7 @@ def javascript_quote(s, quote_double_quotes=False):
|
||||||
s = s.replace('</', '<\\/')
|
s = s.replace('</', '<\\/')
|
||||||
if quote_double_quotes:
|
if quote_double_quotes:
|
||||||
s = s.replace('"', '"')
|
s = s.replace('"', '"')
|
||||||
return str(ustring_re.sub(fix, s))
|
return ustring_re.sub(fix, s)
|
||||||
javascript_quote = allow_lazy(javascript_quote, six.text_type)
|
javascript_quote = allow_lazy(javascript_quote, six.text_type)
|
||||||
|
|
||||||
# Expression to match some_token and some_token="with spaces" (and similarly
|
# Expression to match some_token and some_token="with spaces" (and similarly
|
||||||
|
|
|
@ -155,3 +155,8 @@ class TestUtilsText(SimpleTestCase):
|
||||||
self.assertEqual(text.javascript_quote(input), '"Text"')
|
self.assertEqual(text.javascript_quote(input), '"Text"')
|
||||||
self.assertEqual(text.javascript_quote(input, quote_double_quotes=True),
|
self.assertEqual(text.javascript_quote(input, quote_double_quotes=True),
|
||||||
'"Text"')
|
'"Text"')
|
||||||
|
|
||||||
|
def test_javascript_quote_unicode(self):
|
||||||
|
input = "<script>alert('Hello \\xff.\n Wel𝕃come\there\r');</script>"
|
||||||
|
output = r"<script>alert(\'Hello \\xff.\n Wel𝕃come\there\r\');<\/script>"
|
||||||
|
self.assertEqual(text.javascript_quote(input), output)
|
||||||
|
|
Loading…
Reference in New Issue