4

文字列内のすべてのアルファベット文字とギリシャ語/ドイツ語のアルファベットを許可する正規表現が必要ですが、それらの記号を置き換えます。と?,&,^,"*

質問を簡単にするために、エスケープする文字を含むリストをスキップしました。これを構築する方法を本当に知りたいのですが、その後、ASCIIコードを使用してアルファベットセットを含めます。

4

3 に答える 3

4

置き換える要素の有限で短いセットがある場合は、クラスを使用できます。

 string.replace(/[?\^&]/g, '*');

拒否したい数のシンボルを追加します。置き換えたいユニコード記号の範囲を追加することもできます(例\u017F-\036F\u0400-\uFFFF

それ以外の場合は、aaクラスを使用して、az、アクセント記号/発音区別符号、ギリシャ文字など、置き換える必要のない記号を指定します。

 string.replace(/[^a-z\00C0-\017E\u0370-\03FF]/gi, '*');
于 2012-03-15T15:37:54.720 に答える
4

XRegexpプラグインをUnicodeアドオンと一緒に使用する必要があります。

それができたら、のような最新の正規表現を使用できます。これには、文字または文字番号であるコードポイント/[\p{L}\p{Nl}]/も必ず含まれます。\p{Greek}ただし、必要に/[\p{Latin}\p{Greek}]/応じて一致させることもできます。

Javascript自身の正規表現はひどいです。を使用しXRegexpます。

于 2012-03-15T15:52:05.603 に答える
1

つまり、次のようになります/^[^?&\^"]*$/(つまり、文字列は、リストした5文字以外の文字のみで構成されます)...

ただし、ギリシャ文字とUnicode文字(Unicode文字とは何ですか?àèéìòù?日本語?)が必要な場合は、http://xregexp.com/を使用する必要があります。これは、文字クラスを含むjavascriptのregexライブラリです。さまざまなUnicode文字クラス(私は自分自身を繰り返していることを知っています)に加えて、Unicode処理のための他の「コマンド」のために。

于 2012-03-15T15:36:41.947 に答える