我想限制一个整数以允许最多10位数。从0到任意数字(XXXXXXXXXX)
我正在使用C#和.NET Web API
在我的类(.cs)文件中,我使用过这样的
[RegularExpression(@"^\d{1,10}$", ErrorMessage = "Invalid RequestedN")]
[Display(Name = "RequestedN")]
public int RequestedN { get; set; }
我会在单击提交按钮时收到JSON响应。我将通过验证Controller中的ModelState来验证JSON(对象)...
当我输入11位数时,它显示如下信息
“对于Int32,JSON整数91234567890太大或太小。路径'配额[0]。请求N',第1行,第81位。”
但我希望消息为“Invalid RequestedN”
我已尝试过另一个RegularExpression,但没有用。
^([1-9]|([1-9][0-9])|([1-9][0-9][0-9])|([1-9][0-9][0-9][0-9])|([1-9][0-9][0-9][0-9][0-9])|\d{6}|\d{7}|\d{8}|\d{9}|\d{10})$
建议解决此问题的任何想法或解决方案
答案 0 :(得分:3)
您必须使用Int64:
Int64是一个不可变值类型,表示有符号整数,其值范围为负9,223,372,036,854,775,808(由Int64 :: MinValue常量表示)到正数9,223,372,036,854,775,807(由Int64 :: MaxValue常量表示。 Framework还包括一个无符号的64位整数值类型UInt64,它表示的值范围为0到18,446,744,073,709,551,615。
因此,将您的号码转换为Int64然后您可以使用您的表达式:^ \ d {1,10} $
答案 1 :(得分:2)