我的JS使用“stringify()”将一些字符串数据保存到JSON,但是观察输出的JSON字符串,我看到很多奇怪的字符(来自键空间),例如NULL和其他坏字符。现在我没有这些“坏”字符的列表,那么如何从字符串数据中删除它们呢?
答案 0 :(得分: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;
}
如果你真的想使用RegEx,那么白名单方法似乎是必要的。这将允许所有数字,字母和空格......
val = val.replace(/[^a-z 0-9]+/gi,'');
答案 1 :(得分:2)
如果你有一个“好”字符列表,你可以创建一个正则表达式,匹配列表中的任何字符 not ,并删除它匹配的任何内容 - 例如,以下正则表达式匹配任何内容< em> not 字母“a”,“q”或“z”:
/[^aqz]+/ig