我正在寻找一个javascript函数,它接受一个字符串参数并检查低于32的ascii字符,用空字符串替换它们 - > "&#34 ;.我是javascript的新手,所以我想知道是否有人可以指出我正确的方向?
提前感谢您的时间。
答案 0 :(得分:6)
试试这个:
var replaced = string.replaceAll("[^ -~]", "");
使用^
否定字符类,因为ASCII表中的空格是字符32而且〜是最后一个可打印的字符,所以你基本上是说“所有不是可打印字符的东西”。
要简单地删除0-31中的所有字符,请使用:
var replace = string.replaceAll("\x00-\x1F", "");
答案 1 :(得分:1)
如果我正确理解您的问题,那么您正在寻找与.replace ...
一起使用的正则表达式要替换任何可打印的ascii字符,您可以使用此正则表达式:
/[ -~]/
您可能需要调整范围。我建议更改tilder,因为它是最后一个可打印的字符。
对不起,我明白你的意思了!我认为你不能匹配不可打印的字符,除非使用他们的特殊符号:ie \ b \ s \ n等。
答案 2 :(得分:1)
function keepCharsAbove(inStr, charCode) {
var goodChars = [];
for(var x = 0; x < inStr.length; x++) {
if(inStr.charCodeAt(x) > charCode) {
goodChars.push(inStr.charAt(x));
}
}
return goodChars.join("");
}
用法:
keepCharsAbove("foo \t bar",32); // returns 'foobar'