RegularExpressionValidator.ValidationExpression
ICQ UIN のような入力のみを許可するには、何を使用すればよいですか?
xxx-xxx-xxx and xxx-xxx-xx and xx-xxx-xxx and xxxxxxxxx so on..
つまり、区切り記号としてダッシュを使用し、使用しません。
次の簡単な式を使用できます。
^([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}$