18

すべての印刷可能な文字を検証するための正規表現を探します。正規表現は JavaScript でのみ使用する必要があります。私はこの投稿を読みましたが、主に .net、Java、および C について話していますが、JavaScript については話していません。

次の印刷可能な文字のみを許可する必要があります。

az、AZ、0-9、および 32 個の記号: !"#$%&'()*+,-./:;<=>?@[] ^_`{|}~ およびスペース

入力文字が上記のいずれかであることを検証し、残りを破棄するには、JavaScript 正規表現が必要です。

4

5 に答える 5

17

UTF-8セット内のすべての印刷可能な文字を一致させたい場合(8月21日のコメントで示されているように)、これを自分で行うのは困難です。JavaScriptのネイティブ正規表現はひどいUnicodeサポートを持っています。ただし、 XRegExpは正規表現で使用できます^\P{C}*$

8月22日以降の投稿の編集で言及したいくつかのASCII文字のみを一致させたい場合、正規表現は簡単です。

/^[a-z0-9!"#$%&'()*+,.\/:;<=>?@\[\] ^_`{|}~-]*$/i
于 2012-08-21T10:23:21.720 に答える
12

非ユニコードの場合、正規表現パターンを使用します^[^\x00-\x1F\x80-\x9F]+$


Unicode を使いたい場合は、まずJavascript + Unicode regexesを読んでください。

次に、正規表現パターンを使用することをお勧めします^[^\p{Cc}\p{Cf}\p{Zl}\p{Zp}]*$

  • \p{Cc}または\p{Control}: ASCII 0x00..0x1F または Latin-1 0x80..0x9F 制御文字。
  • \p{Cf}または\p{Format}: 非表示のフォーマット インジケータ。
  • \p{Zl}または\p{Line_Separator}: 行区切り文字 U+2028。
  • \p{Zp}または\p{Paragraph_Separator}: 段落区切り文字 U+2029。

詳細については、http://www.regular-expressions.info/unicode.htmlを参照してください。

于 2012-08-21T12:24:25.763 に答える