简单的ascii替换 - Javascript

时间:2012-11-15 13:24:05

标签: javascript regex

我正在寻找一个javascript函数,它接受一个字符串参数并检查低于32的ascii字符,用空字符串替换它们 - > "&#34 ;.我是javascript的新手,所以我想知道是否有人可以指出我正确的方向?

提前感谢您的时间。

3 个答案:

答案 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'