在文本框中用户不能连续输入 15 位数字,mvc3

In Text box user cannot enter 15 digits continuously, mvc3

我们遇到用户无法在文本框中输入 15 个连续数字(即 411111111111111)的情况,因此我们已使用 mvc 中的数据注释对其进行验证?

如果文本框不是多行,请尝试设置其 MaxLength 属性:

<asp:TextBox ID="tb1" runat="server" MaxLength="15"></asp:TextBox>

编辑:由于您的最大长度是 50,并且您想检查是否输入了 15 个连续的数字,您可以尝试使用 'keypress' 事件:

<script type="text/javascript"> 
    $(function () { 
        $("#<%=tb1.ClientID %>").keypress(function () { 
            /* check here if the textbox' data is valid */
        }); 
    });
</script> 

不过这对您 copy/paste 的操作没有帮助

您可以使用 [ReqularExpression] 属性,该属性将提供客户端和服务器端验证

[RegularExpression(@"^((?!\d{15}).)*$)", ErrorMessage = "The value cannot contain 15 or more consecutive digits")]
public string YourProperty { get; set; }

否定先行 - (?!\d{15}) - 指定如果有 15 个(或更多)连续数字,则匹配被丢弃并且其无效。

有关正则表达式和一些测试用例的更详细说明(为简单起见,使用 3 位数字),请参阅 RegExr