Javascript 如何在python中自动转义特殊字符而不是按字母顺序的字符?
我是用python编写的,我有一个包含特殊字符的unicode,比如双引号和非英语字符 我想自动转义特殊字符,但当我使用re.escape时,它也会转义所有非英语字符。我不确定这会不会发生 无论如何,这是有问题的,因为当我的python代码编写包含unicode的javascript时,javascript会打印一个包含所有这些多余斜杠的HTML元素 我做错了什么 这是生成的JS代码:Javascript 如何在python中自动转义特殊字符而不是按字母顺序的字符?,javascript,python,Javascript,Python,我是用python编写的,我有一个包含特殊字符的unicode,比如双引号和非英语字符 我想自动转义特殊字符,但当我使用re.escape时,它也会转义所有非英语字符。我不确定这会不会发生 无论如何,这是有问题的,因为当我的python代码编写包含unicode的javascript时,javascript会打印一个包含所有这些多余斜杠的HTML元素 我做错了什么 这是生成的JS代码: var myString='\ע\נ\ב\ר' 应该是 var myString='ענבר' 更新: 我
var myString='\ע\נ\ב\ר'
应该是
var myString='ענבר'
更新:
我使用了json.dumps(…),但它在前后添加了额外的引号。有人知道如何删除它吗?这取决于您要编码的实际特殊字符
re.escape
用于避免正则表达式中的特殊字符-它实际上不关心其他事情
也许
urllib.quote
更适合您的需要(然后在JS中使用类似decodeURI()
)。或者,您可以从str
或unicode
派生自己的字符串类,并重写打印对象时调用的\uu str()
方法。在自定义方法中,您可以对转义字符执行任何操作。一种方法是调用基类方法,然后对其输出进行后期处理。最后使用以下方法:
json.dumps(myString,确保ascii=False)
到目前为止效果还不错。添加的参数保留unicode格式
(但它在包含unicode字母字符的部分前后添加了额外的引号,因此我使用了
myString=myString[1:-1]
。这有点难看,也许有更好的解决方案……。re.escape
顾名思义,是用于转义字符串以用作正则表达式中的文字。那是完全不同的。