我有表单在我的网页上,用户可以键入一些文本,并提交它。然后将文本发送到服务器(node.js上的REST API )并保存到DB (postgres)。
问题是,一些奇怪的字符(控制字符)偶尔会保存到数据库中-例如,转义控制字符(^[)或退格控制字符(^H)。通常它不会破坏任何东西,因为这些字符是不可见的,所以html可以正确呈现。然而,当我为RSS阅读器提供xml内容时,它们(阅读器)返回“格式错误的XML”,因为这些控制字符(在删除它们之后才起作用)。
我的问题是,如何在客户端级(javascript)或服务器级(javascript/node.js)从字符串中删除这些字符?
发布于 2018-07-31 05:16:49
Control characters in Unicode位于代码点U+0000到U+001F,以及U+007F到U+009F。使用RegExp查找这些控制字符并将其替换为空字符串:
str.replace(/[\u0000-\u001F\u007F-\u009F]/g, "")
如果要删除其他字符,请将这些字符添加到RegExp内的character class中。例如,要删除U+200B零宽度空格,请在]
之前添加\u200B
。
发布于 2014-11-05 02:21:49
我也有类似的问题,这是我选择的解决方案。
我使用encodeURIComponent(variable_Name)对来自用户的字符串数据进行编码,然后保存,然后在显示时使用decodeURIComponent(variable_Name)解码。
https://stackoverflow.com/questions/26741455
复制相似问题