我的 JS 使用“stringify()”将一些字符串数据保存到 JSON,但观察输出的 JSON 字符串,我看到很多奇怪的字符(超出键空间),例如 NULL 和其他坏字符。现在我没有这些“坏”字符的列表,那么如何将它们从我的字符串数据中删除?
问问题
4491 次
2 回答
8
如果有一个简单的正则表达式会很好,但我认为没有。据我了解,您仍然希望允许使用 %$#@ 等字符,但希望禁止使用制表符和空值等其他奇怪的字符。如果这是正确的,我相信最简单的方法是循环每个字符并评估字符代码......
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;
}
如果你真的想使用 RegEx,白名单方法似乎是必要的。这将允许所有数字、字母和空格...
val = val.replace(/[^a-z 0-9]+/gi,'');
于 2009-08-06T16:41:55.137 回答
2
如果您有一个“好”字符列表,您可以创建一个匹配列表中没有的任何字符的正则表达式,并删除它匹配的任何内容 - 例如,以下正则表达式匹配任何不是字母“a”,“q”,或“z”:
/[^aqz]+/ig
于 2009-08-06T16:41:15.293 回答