如何从JS中删除字符串中的坏字符?

Rob*_*cks 8 javascript string json sanitization

我的JS使用"stringify()"将一些字符串数据保存到JSON,但是观察输出的JSON字符串,我看到很多奇怪的字符(来自键空间),例如NULL和其他坏字符.现在我没有这些"坏"字符的列表,那么如何从字符串数据中删除它们呢?

Jos*_*ola 8

如果有一个简单的RegEx就好了,但我认为没有.根据我的理解,你仍然想要允许%$#@等字符,但是想要禁止其他奇怪的字符,如制表符和空值.如果这是正确的,我相信最简单的方法是循环每个字符并评估字符代码......

function stripCrap(val) {
  var result = '';

  for(var i = 0, l = val.length; i < l; i++) {
    var s = val[i];
    if(String.toCharCode(s) > 31)
      result += s;
  }

  return result;
}
Run Code Online (Sandbox Code Playgroud)

如果你真的想使用RegEx,那么白名单方法似乎是必要的.这将允许所有数字,字母和空格......

val = val.replace(/[^a-z 0-9]+/gi,'');
Run Code Online (Sandbox Code Playgroud)