我的页面上有表单,用户可以在其中输入一些文字并提交。然后将文本发送到服务器(node.js上的REST API)并保存到DB(postgres)。
问题是偶尔会将一些奇怪的字符(控制字符)保存到DB中 - 例如转义控制字符(^ [)或退格控制字符(^ H)。通常它不会破坏任何东西,因为这些字符是不可见的,所以html正确呈现。但是,当我为RSS阅读器提供xml内容时,他们(读者)会返回"格式错误的XML"因为那些控制字符(删除后它们可以工作)。
我的问题是我如何从客户端级别(javascript)或服务器级别(javascript / node.js)的字符串中删除这些字符?
答案 0 :(得分:12)
我在以下问题的文本中找到了正确的答案:Removing control characters from a UTF-8 string in PHP。使用正则表达式查找控制字符并将其替换为空字符串:
str.replace(/[\x00-\x1F\x7F-\x9F]/g, "");
答案 1 :(得分:0)
我有类似的问题,这是我选择的解决方案。
我使用encodeURIComponent(variable_Name)编码来自用户的字符串数据,然后保存,然后显示我使用decodeURIComponent(variable_Name)解码