1

ユーザーが世界規模のソーシャル コミュニティに登録するために、姓と名を検証したいと考えています。

などの言語関連の特殊文字をすべて許可しÄÖÜÀýéè最大3 つのプレネームをすべてスペースで区切ります (複数のプレネームがある場合)。また、アンダースコアやその他の特殊文字は使用できませんが、マイナス (-) は使用できます。

名前に何が許されるべきか、私が考えることができるのはこれだけです。ドイツ以外の国ではどうなのかは知りませんが、ここでは姓を 3 つまで使用でき、姓には「von Seidenfeld」のように単語を 2 つ使用できます。世界中のすべてのフルネームに対してこの名前検証システムをカバーしたいので、ここでさらにいくつかの提案をしてください.

RegEx を使用する必要があることも知っていますが、今書いたこれらの条件だけを許可する方法がわかりません。

私がこれまでに持っているもの:

if (!preg_match('/^(\pL+\s+)$/u', $value)) echo 'error';

またはここで表示: http://regex101.com/r/tE0uQ5 (悲しいことに動作しません、一致しません)

4

3 に答える 3

4

名前に何が許されるべきか、私が考えることができるのはこれだけです。

程遠い。

ドイツ以外の国ではどうなのかは知りませんが、ここでは姓を 3 つまで使用でき、姓には「von Seidenfeld」のように単語を 2 つ使用できます。

他の国では違います。ドイツでもおそらく違いますが、あなたの名前や、今すぐに考えている人の名前ではありません.

世界中のすべての氏名について、この名前検証システムについて説明したいと思います。

これは、主題について読む必要があります。しかし、要約すると...これを行う方法はありません。なし。名前に一致する正規表現が絶対に必要な場合は、これが役立つ場合があります。

定義上、誰か自分の名前としてシステムに入力するものはすべて、少なくともシステムに関する限り、その人の名前です。それはあなたが彼らを特定するべきだと彼らがどのように決定したかです. それは彼らの管轄における彼らの正式な名前ですか?あなたの管轄では?親が呼ぶ名前ですか?友達が呼ぶ名前は?これらはいずれも、正規表現では検証できません。

要するに...空でない入力を名前として受け入れるだけです。

于 2013-10-25T18:37:00.073 に答える