1

RegularExpressionValidator.ValidationExpressionICQ UIN のような入力のみを許可するには、何を使用すればよいですか?

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

つまり、区切り記号としてダッシュを使用し、使用しません。

4

1 に答える 1

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}$
于 2009-07-08T11:31:27.213 に答える