我正在对10位印度电话号码进行验证(下面编码)。我只接受数字。我似乎无法弄清楚如何抛出错误,以便输入的数字以文本或特殊字符开头,也不允许超过12位数。 或者,如果用户输入的数字超过12位,则将trunacte数字设置为12位数。
<asp:RegularExpressionValidator ID="phoneregularExpression" runat="server" ErrorMessage="MoreThan10" EnableClientScript="false"
ControlToValidate="txtphone" Display="Static" Text="Please enter atleast 10 digits" ValidationExpression="^([0-9\(\)\/\+ \-]*)$"></asp:RegularExpressionValidator>
提前致谢。
答案 0 :(得分:6)
此正则表达式将确保有10,但允许不超过12:
^([0-9]{10,12})$
以下是Regex 101来证明这一点。
这个只允许10或12 ,而11位数将会失败。
^([0-9]{10}|[0-9]{12})$
以下是Regex 101来证明这一点。
这个允许1到12位数字:
^([0-9]{1,12})$
现在,您已将EnableClientScript
设置为false。这意味着不会有任何JavaScript验证客户端。但是,您需要确保致电this.Validate()
以强制验证页面,然后尝试检查验证程序IsValid
。
答案 1 :(得分:1)
试试这个
1)最大限制= 12
ValidationExpression="\d{0,12}"
2)要求长度= 12但不限制
ValidationExpression="\d{12}"
答案 2 :(得分:1)
使用此设置将最大长度设置为12到TextBox和Validator并在regularexpression上验证并尝试
<asp:TextBox runat="server" ID="txt" MaxLength="12"></asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"
ErrorMessage="Error" ForeColor="Red" ControlToValidate="txt"
ValidationExpression="^[0-9]{12}$"></asp:RegularExpressionValidator>
答案 3 :(得分:0)
试试这个正则表达式
^[0-9]{12}$