3

文字列パラメーターを受け取り、32 未満の ASCII 文字をチェックして空の文字列に置き換える JavaScript 関数を探しています -> "". 私はjavascriptが初めてなので、誰かが私を正しい方向に向けることができるかどうか疑問に思っていましたか?

お時間をいただきありがとうございます。

4

3 に答える 3

7

これを試して:

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

使用^すると文字クラスが無効になり、スペースはASCIIテーブルの文字32であり、〜は最後の印刷可能な文字であるため、基本的に「印刷可能な文字ではないすべて」と言っています.

0 から 31 までのすべての文字を単純に削除するには、次のようにします。

var replace = string.replaceAll("\x00-\x1F", "");
于 2012-11-15T13:34:35.303 に答える
1

私があなたの質問を正しく理解していれば、.replace... で使用する正規表現を探しています。

印刷可能なASCII文字を置き換えるには、次の正規表現を使用できます。

/[ -~]/

おそらく範囲を調整する必要があります。最後の印刷可能な文字であるため、チルダーを変更することをお勧めします。

すみません、あなたの言いたいことはわかりました!特別な記号を使用しない限り、印刷できない文字と一致させることはできないと思います:つまり、 \b \s \n など.

于 2012-11-15T13:29:10.327 に答える
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'
于 2012-11-15T13:34:48.093 に答える