我正在寻找一个 javascript 函数,它接受一个字符串参数并检查低于 32 的 ascii 字符,将它们替换为空字符串->“”。我是 javascript 新手,所以我想知道是否有人能指出我正确的方向?
在此先感谢您的时间。
我正在寻找一个 javascript 函数,它接受一个字符串参数并检查低于 32 的 ascii 字符,将它们替换为空字符串->“”。我是 javascript 新手,所以我想知道是否有人能指出我正确的方向?
在此先感谢您的时间。
试试这个:
var replaced = string.replaceAll("[^ -~]", "");
使用^
否定字符类,并且由于空格是 ASCII 表中的字符 32 并且 ~ 是最后一个可打印字符,因此您基本上是在说“所有不是可打印字符”。
要简单地删除 0-31 中的所有字符,请使用:
var replace = string.replaceAll("\x00-\x1F", "");
如果我正确理解您的问题,您正在寻找与 .replace 一起使用的正则表达式...
要替换任何可打印的 ascii 字符,您可以使用此正则表达式:
/[ -~]/
您可能需要调整范围。我建议更改 tilder,因为它是最后一个可打印的字符。
对不起,我明白你的意思了!我认为你不能匹配不可打印的字符,除非使用它们的特殊符号:即 \b \s \n 等。
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'