1

我有一个 asp:textbox 从用户那里获取一个容器号并对其进行验证,我怎样才能确保输入的字符串正好是 11 个字符长

  1. 前4个字符是普通英文字符
  2. 第 4 个字符必须是以下 {U or J or Z} 之一
  3. 其余(9 个字符)是数字。

示例 > “CRLU123456789”

4

2 回答 2

3

我建议您使用RegularExpressionValidator. 它们很容易标记:

<asp:RegularExpressionValidator
    ControlToValidate="NameOfTextBox"  <!-- the input text box name -->
    ValidationExpression="[a-zA-Z]{4}[UJZ]\d{9}"
    ErrorMessage="Please enter a valid container number."
    Display="Dynamic"  <!-- this means it's display: none when no error -->
    EnabledClientScript="true"  <!-- this will perform JavaScript validation -->
    runat="server" />

现在,EnabledClientScript="true"如果启用它,它实际上将使用 JavaScript 验证控件,但是因为您仍然不能依赖它,所以您也需要验证服务器端。所以,你要做的是在按钮点击中,你想要验证发生的地方,第一块代码应该是:

this.Validate();    // validates all Validators on the page
if (!this.IsValid) { return; }

并且当您回发时,将显示错误消息。

于 2013-08-29T12:19:18.387 回答
1

使用带有此 ValidationExpression 的 RegularExpressionValidator 控件:[a-zA-Z]{4}[ujzUJZ][0-9]{9}

于 2013-08-29T12:20:25.863 回答