2012-01-16 3 views
0

サイトにローカライズ機能があるため、フィールド(ビジネス名、会社名、住所など)の検証に関する問題はかなり混乱しています。現在、私は、正規表現を経由して、私の正規表現の1のスニップをjQueryのを使用してフィールドを検証しています:入力フィールドを確認するサイトがドイツ語と英語を使用しています

var regex = /^[a-zA-Z0-9-,.\säöüÄÖÜ]{2,}$/; 

サイトは英語の場合にこれが正常に動作します。しかし、これがドイツの環境でうまくいくのであれば、私は自信がありません。

私の検証には、文字マップ(Windows)を使用します。たとえば、私はキャラクターマップからüを得て、フィールドに貼り付けます。しかし、このスクリプトは無効な文字だと言います。あなたが正規表現を見るならば、私はそのような文字が有効であると考えています。

+0

"これがうまくいくと自信がない" - それは試していないということですか? – JJJ

+0

これはあなたを助けるでしょうか? http://stackoverflow.com/questions/7808390/jquery-validate-plugin-accept-only-german-letters –

+0

私は本当にあなたが検証方法としてjavascript(jQuery)を使用していないことを願っていますし、PHPでも検証します。 –

答えて

1

ほとんどの場合、技術的な問題はドキュメントの文字エンコーディングにあります。ドキュメントがUTF-8でエンコードされており、HTTPヘッダーや少なくともmetaタグで宣言されていることを確認してください。

さらに難しい重要な問題があります。あなたの正規表現は英語の名前Brontëとドイツの名前Straußを拒否します。そしてそれは42を受け入れます。これは誰の名字でもほとんどありません。

このチェックの目的は何ですか?すべての名前が英語かドイツ語かと期待できますか?ヨーロッパの慣習によると、たとえそれが大多数の言語以外の言語であったとしても、人はヨーロッパ諸国で彼の名前を正しく記入する権利があります。

一部の容認されたスペルで誰かの本当の名前を拒否するリスクなしにできる個人名のチェックはあまりありません。限られた文字のレパートリーや構文に名前を付ける必要がある場合は、これをユーザーに明確にし、サーバー側で実行する必要があります。また、クライアント側の事前チェックとして追加することが好ましいです。

+0

この有益な答えをありがとう。私は自分の投稿を編集しました、残念ながら私は特に名字には関係しません。むしろ私はこのようなビジネス名/会社名でこれを検証しています。これを登録用紙に適用しています。 –

関連する問題