我想确保八个字符代码中的前四个字母是字母。有什么功能吗,还是我自己做?
qgelzfjb1#
您可以像这样添加javascript/regex验证:
/^[a-zA-Z]{4}.*/
bwleehnv2#
您应该使用regular expression validator来实现这一点。
6g8kf2rb3#
AFAIK没有内置函数。根据用户区域性,* 字母 * 可能表示不同的内容。如果您表示ASCII字母,则可以如下测试:
bool IsASCIILetter(char letter) { return letter >= 65 && letter <= 90 && letter >= 97 && letter <= 122; }
r8uurelv4#
Char.IsLetter怎么样?它有2个超控:一个是传入char,另一个是传入string和index。
cwxwcias5#
如果要验证的是输入控件的内容,请使用RegularExpressionValidator。这种情况可能很简单,只需使用RegEx,但对于更复杂的验证,我尽量避免使用RegEx,因为它们太复杂而无法调试。正如比我聪明的人所说:“我以前用正则表达式解决了一个问题。现在我有两个问题。"即使您对正则表达式很熟悉,维护您代码的人也可能不太熟悉。更显式的代码更易于阅读和维护:
bool IsValid (string code) { if (code.Length != 8) return false; for (int i = 0; i < 4; ++i) { if (!Char.IsLetter(code[i])) return false; } return true; }
3ks5zfa06#
2个选项:
选项1-在代码隐藏中检查它:
if (txtBox1.Text.Length >= 4 && txtBox1.Text.ToCharArray().Take(4).All(c => char.IsLetter(c))) { // success } else { // validation failed }
您没有说明是否强制长度为8,或者它是可选的,并且 * 最多 * 8。您可以相当容易地添加此检查。
选项2-将RegularExpressionValidator与可选RequiredFieldValidator一起使用。如果您决定使用此方法,则确实应该确切地知道最后4个字符允许的内容,因为下面的示例允许任何内容,并且仅将前4个字符限制为字母。此外,同样,如果您希望强制长度为8或不强制长度为8,这将有所不同。下面的示例使其成为强制性的;若要使其具有8个可选字符,则应使用“[A-Za-z]{4}(.{4})?”。
<asp:TextBox ID="txtBox1" runat="server"></asp:TextBox><asp:RequiredFieldValidator ID="rfvtxtBox1" runat="server" ControlToValidate="txtBox1" ErrorMessage="txtBox1 is required!" Display="Dynamic">*</asp:RequiredFieldValidator><asp:RegularExpressionValidator ID="revtxtBox1" runat="server" ControlToValidate="txtBox1" ValidationExpression="[A-Za-z]{4}.{4}" ErrorMessage="First 4 characters must be a letter!" Display="Dynamic" />如果你不想允许一个空白条目,那么就需要一个RequiredFieldValidator,因为RegularExpressionValidator本身并不能阻止空白条目。
<asp:TextBox ID="txtBox1" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvtxtBox1" runat="server" ControlToValidate="txtBox1" ErrorMessage="txtBox1 is required!" Display="Dynamic">*</asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="revtxtBox1" runat="server" ControlToValidate="txtBox1" ValidationExpression="[A-Za-z]{4}.{4}" ErrorMessage="First 4 characters must be a letter!" Display="Dynamic" />
6条答案
按热度按时间qgelzfjb1#
您可以像这样添加javascript/regex验证:
bwleehnv2#
您应该使用regular expression validator来实现这一点。
6g8kf2rb3#
AFAIK没有内置函数。根据用户区域性,* 字母 * 可能表示不同的内容。如果您表示ASCII字母,则可以如下测试:
r8uurelv4#
Char.IsLetter怎么样?
它有2个超控:一个是传入char,另一个是传入string和index。
cwxwcias5#
如果要验证的是输入控件的内容,请使用RegularExpressionValidator。
这种情况可能很简单,只需使用RegEx,但对于更复杂的验证,我尽量避免使用RegEx,因为它们太复杂而无法调试。正如比我聪明的人所说:“我以前用正则表达式解决了一个问题。现在我有两个问题。"即使您对正则表达式很熟悉,维护您代码的人也可能不太熟悉。
更显式的代码更易于阅读和维护:
3ks5zfa06#
2个选项:
选项1-在代码隐藏中检查它:
您没有说明是否强制长度为8,或者它是可选的,并且 * 最多 * 8。您可以相当容易地添加此检查。
选项2-将RegularExpressionValidator与可选RequiredFieldValidator一起使用。如果您决定使用此方法,则确实应该确切地知道最后4个字符允许的内容,因为下面的示例允许任何内容,并且仅将前4个字符限制为字母。此外,同样,如果您希望强制长度为8或不强制长度为8,这将有所不同。下面的示例使其成为强制性的;若要使其具有8个可选字符,则应使用“[A-Za-z]{4}(.{4})?”。
<asp:TextBox ID="txtBox1" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvtxtBox1" runat="server" ControlToValidate="txtBox1" ErrorMessage="txtBox1 is required!" Display="Dynamic">*</asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="revtxtBox1" runat="server" ControlToValidate="txtBox1" ValidationExpression="[A-Za-z]{4}.{4}" ErrorMessage="First 4 characters must be a letter!" Display="Dynamic" />
如果你不想允许一个空白条目,那么就需要一个RequiredFieldValidator,因为RegularExpressionValidator本身并不能阻止空白条目。