文字列内のすべてのアルファベット文字とギリシャ語/ドイツ語のアルファベットを許可する正規表現が必要ですが、それらの記号を置き換えます。と?,&,^,"
*
質問を簡単にするために、エスケープする文字を含むリストをスキップしました。これを構築する方法を本当に知りたいのですが、その後、ASCIIコードを使用してアルファベットセットを含めます。
文字列内のすべてのアルファベット文字とギリシャ語/ドイツ語のアルファベットを許可する正規表現が必要ですが、それらの記号を置き換えます。と?,&,^,"
*
質問を簡単にするために、エスケープする文字を含むリストをスキップしました。これを構築する方法を本当に知りたいのですが、その後、ASCIIコードを使用してアルファベットセットを含めます。
置き換える要素の有限で短いセットがある場合は、クラスを使用できます。
string.replace(/[?\^&]/g, '*');
拒否したい数のシンボルを追加します。置き換えたいユニコード記号の範囲を追加することもできます(例\u017F-\036F\u0400-\uFFFF
)
それ以外の場合は、aaクラスを使用して、az、アクセント記号/発音区別符号、ギリシャ文字など、置き換える必要のない記号を指定します。
string.replace(/[^a-z\00C0-\017E\u0370-\03FF]/gi, '*');
XRegexp
プラグインをUnicodeアドオンと一緒に使用する必要があります。
それができたら、のような最新の正規表現を使用できます。これには、文字または文字番号であるコードポイント/[\p{L}\p{Nl}]/
も必ず含まれます。\p{Greek}
ただし、必要に/[\p{Latin}\p{Greek}]/
応じて一致させることもできます。
Javascript自身の正規表現はひどいです。を使用しXRegexp
ます。
つまり、次のようになります/^[^?&\^"]*$/
(つまり、文字列は、リストした5文字以外の文字のみで構成されます)...
ただし、ギリシャ文字とUnicode文字(Unicode文字とは何ですか?àèéìòù?日本語?)が必要な場合は、http://xregexp.com/を使用する必要があります。これは、文字クラスを含むjavascriptのregexライブラリです。さまざまなUnicode文字クラス(私は自分自身を繰り返していることを知っています)に加えて、Unicode処理のための他の「コマンド」のために。