我有一个 asp:textbox 从用户那里获取一个容器号并对其进行验证,我怎样才能确保输入的字符串正好是 11 个字符长
- 前4个字符是普通英文字符
- 第 4 个字符必须是以下 {U or J or Z} 之一
- 其余(9 个字符)是数字。
示例 > “CRLU123456789”
我有一个 asp:textbox 从用户那里获取一个容器号并对其进行验证,我怎样才能确保输入的字符串正好是 11 个字符长
示例 > “CRLU123456789”
我建议您使用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; }
并且当您回发时,将显示错误消息。
使用带有此 ValidationExpression 的 RegularExpressionValidator 控件:[a-zA-Z]{4}[ujzUJZ][0-9]{9}