admin管理员组

文章数量:1290984

I'm looking for a javascript function which takes a string parameter and checks for ascii characters lower than 32, replacing them with empty string -> "". I'm new to javascript so I was wondering whether anyone can point me towards the right direction ?

Thanks in advance for your time.

I'm looking for a javascript function which takes a string parameter and checks for ascii characters lower than 32, replacing them with empty string -> "". I'm new to javascript so I was wondering whether anyone can point me towards the right direction ?

Thanks in advance for your time.

Share Improve this question asked Nov 15, 2012 at 13:24 PumpkinPumpkin 2,0433 gold badges27 silver badges33 bronze badges 3
  • Also, why? Might be a better way. – Prof. Falken Commented Nov 15, 2012 at 13:26
  • stackoverflow./questions/94037/… this may help – Ferhat Commented Nov 15, 2012 at 13:27
  • What I meant was, I want to find and remove any characters within the string that has a lower ascii value than 32 – Pumpkin Commented Nov 15, 2012 at 13:28
Add a ment  | 

3 Answers 3

Reset to default 7

Try this:

var replaced = string.replaceAll("[^ -~]", "");

Using ^ negates the characters class, and since space is character 32 in the ASCII table and ~ is the last printable character, you're basically saying "everything that isn't a printable character".

To simply remove all characters from 0-31 use:

var replace = string.replaceAll("\x00-\x1F", "");

If I understand your question correctly you are looking for a regex to use with .replace...

For replacing any printable ascii chars you can use this regex:

/[ -~]/

You will probably have to adjust the range. I remend changing the tilder since it is the last printable char.

Sorry, I see what you mean! I think you cannot match unprintable chars unless use use their special symbol: i.e. \b \s \n etc.

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("");
}

​ Usage:

keepCharsAbove("foo \t bar",32); // returns 'foobar'

本文标签: regexSimple ascii replacementJavascriptStack Overflow