如何从字符串中删除控制字符?

时间:2014-11-04 17:35:27

标签: javascript html

我的页面上有表单,用户可以在其中输入一些文字并提交。然后将文本发送到服务器(node.js上的REST API)并保存到DB(postgres)。

问题是偶尔会将一些奇怪的字符(控制字符)保存到DB中 - 例如转义控制字符(^ [)或退格控制字符(^ H)。通常它不会破坏任何东西,因为这些字符是不可见的,所以html正确呈现。但是,当我为RSS阅读器提供xml内容时,他们(读者)会返回"格式错误的XML"因为那些控制字符(删除后它们可以工作)。

我的问题是我如何从客户端级别(javascript)或服务器级别(javascript / node.js)的字符串中删除这些字符?

2 个答案:

答案 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)解码