web-dev-qa-db-ja.com

10桁と数字のみの正規表現バリデーターc#asp.net

10桁までの数字を持つ正規表現バリデーターが欲しい

私はこれを試しましたが、それは数字のみであり、桁数ではありません

<asp:RegularExpressionValidator ID="rvDigits" runat="server" ControlToValidate="txtMobId"
                                ErrorMessage="Enter numbers only till 10 digit" ValidationGroup="valGroup" ForeColor="Red"
                                ValidationExpression="\d+" />
7
user6465356

制限量指定子{min,max} を使用する必要があります。

空の入力を許可する場合は、{0,10}を使用して0〜10桁を照合します。

ValidationExpression="^[0-9]{0,10}$"

それ以外の場合は、{1,10}を使用して1〜10桁を許可します。

ValidationExpression="^[0-9]{1,10}$"

または、10桁の文字列と完全に一致する場合は、min,の部分を省略します。

ValidationExpression="^[0-9]{10}$"

また、サーバー側の検証では.NET正規表現構文が使用され、\dはこの正規表現フレーバーの0から9までの数字より多く一致するため、[0-9]を優先することに注意してください。 \d[0-9] より効率的ではありませんを参照してください。

その上、^$を完全に省略できるようです( MSDNRegular Expressions in ASP.NETarticle を参照):

文字列の始まりと文字列の終わりに一致する文字(^および$)を指定する必要はありません。これらは想定されています。 それらを追加しても、何も害を及ぼす(または変更する)ことはなく、単に不要です。

ほとんどの人は、明確にするために、パターン内でそれらを明示的に保つことを好みます。

10

この答えをテストしてください:

<asp:RegularExpressionValidator ID="rvDigits" runat="server" ControlToValidate="txtMobId" ErrorMessage="Enter numbers only till 10 digit" ValidationGroup="valGroup" ForeColor="Red" ValidationExpression="[0-9]{10}" />