私の 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;
}
本当に正規表現を使用したい場合は、ホワイトリストアプローチが必要と思われます。これにより、すべての数字、文字、およびスペースが許可されます...
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 に答える