从Node.js加密返回的字符串中删除非ASCII字符

4

我已经成功使用Node.js的加密库解密了敏感数据。

问题是,解密后的数据末尾有一些非ASCII字符。

我该如何去掉这些字符?

我目前的trim函数无法完成此任务。

String.prototype.fulltrim = function () {
  return this.replace( /(?:(?:^|\n)\s+|\s+(?:$|\n))/g, '' ).replace( /\s+/g, ' ' );
};
2个回答

5
我认为以下内容足够了。
str.replace(/[^A-Za-z 0-9 \.,\?""!@#\$%\^&\*\(\)-_=\+;:<>\/\\\|\}\{\[\]`~]*/g, '') ; 

0

根据这个答案, 你可以使用:

String.prototype.fulltrim = function () {
  return this.replace( /([^\x00-\xFF]|\s)*$/g, '' );
};

这应该会移除字符串末尾的所有空格和非 ASCII 字符,但会将它们保留在中间,例如:
"Abcde ffאggg ג ב".fulltrim();
// "Abcde ffאggg";

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接