0

Web サイトの特定のフィールドでドイツ語、フランス語、スペイン語の文字をサポートしたいと考えています。これには正規表現が必要です。現在私は使用しています -

^[\w\s-\+\$\*\.\?\:\;\!\,"'\%\&\/\(\)\@\#«»£°¿¡_ÀÂÆÇÈÉÊËÎÏÔŒÙÛÜàâæçèéêëîïôœùûüÄÖäößÁÍÑÓÚáíñóú\u201E\u201C\u201D\u20AC]{1,255}$

この正規表現は基本的に、前述の 3 つの言語のすべての文字セットを使用します。

この長い正規表現を回避するきちんとした方法はありますか? /p{L}/p{Z}正規表現を試しました。しかし、これはうまくいきませんでした。

私のウェブサイトは ASP.net にあります

4

1 に答える 1

1
  1. /p{L}/p{Z}間違っているはずです\p{L}\{Z}

  2. 「ÀÂÆÇÈ」のようなすべての文字は必要ありません。それらはすべて .net の \w に含まれています。

  3. 文字クラスでのエスケープのほとんどは必要ありません

  4. "文字クラスのようなものを書くことはできません。起こることは、すべての文字がクラスに追加されることだけです。

これは、使用したものと非常に似ているはずです。

^[-\p{L}\p{N}\p{P}\p{Z}_+$*%&/@#«»£°\u201E\u201C\u201D\u20AC]{1,255}$

クラスの最後でこれらの Unicode コードポイントをチェックしていません。必要かどうかは今はチェックしていません。

すべての\p{...}項目の説明については、regular-expressions.info の Unicode 正規表現を参照してください。

于 2012-10-16T10:18:16.520 に答える