2009-07-08 9 views
1

ICQ UINのような入力だけを許可するには、どのようなものを使用しますか?RegularExpressionValidator.ValidationExpressionRegEx for ICQ UIN

xxx-xxx-xxx and xxx-xxx-xx and xx-xxx-xxx and xxxxxxxxx so on.. 

つまり、区切り記号として、およびなしでダッシュを使用します。

答えて

4

次の簡単な式を使用できます。

^([0-9]-?){7,8}[0-9]$ 

欠点は、それが1-2-3-4-5-6-7-8のようなものを可能にすること、です。レイアウトをさらに制限したい場合は、より複雑な式を使用できます。

^(?=([0-9]-?){8,9})([0-9]{2,3}-?)*(?<!-)$ 

この式は、文字列が正確に8または9の数字とポジティブルックアヘッド・アサーション(?=([0-9]-?){8})を使用して、いくつかのダッシュが含まれていることを主張します。その後、オプションでダッシュで区切られた2つまたは3つの数字のグループと一致し、最後にアサーション(?<!-)のネガティブな外観を使用して文字列がダッシュで終わらないことをアサートします。

これでも12-34567-89のようないくつかの不規則なパターンが許可されます。それらも削除したい場合は、許可されているすべてのパターンをリストする必要があります。しかし、そうしないことをお勧めしますが、可能な限り柔軟性を持たせることをお勧めします。私は8〜9個の数字と任意の数のダッシュ(さらには--123---4-5-67--8)を許可し、あらかじめ定義された形式でユーザー入力を再フォーマットします。

^(-*[0-9]-*){8,9}$ 
+2

いくつかのコメント:(1)私はICQを使用したとき、私は6桁の数字を持っていました。 (2)ICQ番号は0から始めることはできないと思います。 (^^ * [1-9] [0-9 - ] * $ 'で十分でしょう... – Massa

+2

マッサ、これであなたのインターネット時代を譲り渡しています...私のICQには6桁の数字もあり、11年前と12年前に入社しました。 –