2

すべてをクリーンに保つには、入力の検証、優れた入力の検証が必要です。したがって、「フルネーム」に厳密な正規表現が必要で、国際的なので、Unicode サポートが必要です。「その形式」を正規表現にコンパイルし、UnicodeをサポートするXRegExpをダウンロードしました:

正しい名前:

  • ジョン・エルケアード
  • アンドレ・スベンソン
  • マルコ・ダルメイダ
  • クリストファー・ラ・クール

不適切な名前:

  • ハンス
  • H4nn3 アンデルセン
  • マルティン・ヘンリクセン!

だから私は必要です:

  1. Unicode 文字 (a、æ) に一致
  2. Unicode アクセント (á、Ë など) に一致
  3. Unicode ハイフンに一致 (- _ など)

PHP では、一致するように次の操作を実行できます。

\p{L} (unicode letter)
\p{Mn} (unicode accents)
\p{Pd} (unicode hyphens)

私が理解したこと、XRegExpでできること:

^\p{L}+$ は「日本」に一致するため、文字 1 のみが機能しますが、これらの Unicode アクセント、ハイフンをどのように行うかを理解するにはどうすればよいですか?

手伝ってくれてありがとう。

4

1 に答える 1

2

@lanzzは、名前の検証に関する潜在的な問題についていくつかの良いフィードバックを提供したようですが、記録としては、PHPの場合と同じようにXRegExpで言及したUnicodeカテゴリを使用できます。例:XRegExp('^[\\p{L}\\p{Mn}\\p{Pd} ]+$')。これには、XRegExpのUnicodeカテゴリアドオンが必要です。JavaScript文字列リテラルのエスケープ規則により、バックスラッシュがエスケープされていることに注意してください。

于 2012-10-25T17:38:53.233 に答える