Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 为什么不是';我的正则表达式是否至少有1个大写字母?_Asp.net_Regex - Fatal编程技术网

Asp.net 为什么不是';我的正则表达式是否至少有1个大写字母?

Asp.net 为什么不是';我的正则表达式是否至少有1个大写字母?,asp.net,regex,Asp.net,Regex,我试图在asp中创建一个用户,当然我想使用正则表达式,所以我确信他们输入的密码很好。我尝试了很多方法,但仍然,每一个FKIN时间都说我仍然需要输入至少1个大写字母,即使我的通行证基本上是由大写字母组成的 大写的正则表达式是第三个 代码: <asp:Panel runat="server" DefaultButton="btnCreateUser"> <table> <tr>

我试图在asp中创建一个用户,当然我想使用正则表达式,所以我确信他们输入的密码很好。我尝试了很多方法,但仍然,每一个FKIN时间都说我仍然需要输入至少1个大写字母,即使我的通行证基本上是由大写字母组成的

大写的正则表达式是第三个

代码:

        <asp:Panel runat="server" DefaultButton="btnCreateUser">  
            <table>
                <tr>
                    <td>Gebruikersnaam</td>
                    <td><asp:TextBox runat="server" ID="txtUsername" />
                    <asp:RequiredFieldValidator ControlToValidate="txtUsername" ForeColor="Red" ID="rfUsername" runat="server" ErrorMessage="U heeft geen gebruikersnaam ingevoerd.<br />"></asp:RequiredFieldValidator>
                    </td>
                </tr>
                <tr>
                    <td>Wachtwoord</td>
                    <td>
                        <asp:TextBox runat="server" ID="txtPassword" />  
                        <asp:RequiredFieldValidator ControlToValidate="txtPassword" ForeColor="Red" ID="rfPassword" runat="server" ErrorMessage="<br />U heeft geen wachtwoord ingevoerd.<br />"></asp:RequiredFieldValidator>
                        <asp:RegularExpressionValidator runat=server display=dynamic
                            ControlToValidate="txtPassword" foreColor="Red"
                            ErrorMessage="<br />Het wachtwoord moet minstens 1 cijfer bevatten. <br />"
                            ValidationExpression="(?=.*\d)$" />
                        <asp:RegularExpressionValidator runat=server display=dynamic
                              ControlToValidate="txtPassword" foreColor="Red"
                              ErrorMessage="Het wachtwoord moet minimaal uit 6 tekenen bestaan. <br />" 
                              ValidationExpression="(.{8,})$" />
                        <asp:RegularExpressionValidator runat=server display=dynamic
                              ControlToValidate="txtPassword" foreColor="Red"
                              ErrorMessage="Het wachtwoord moet minimaal 1 hoofdletter bevatten.<br />" 
                              ValidationExpression="^(?=.*[A-Z])$" />
                    </td>
                </tr>
                <tr>
                    <td>Naam</td>
                    <td>
                        <asp:TextBox runat="server" ID="txtDisplayName" />  
                        <asp:RequiredFieldValidator ControlToValidate="txtDisplayName" ForeColor="Red" ID="rfDisplay" runat="server" ErrorMessage="U heeft geen display naam ingevoerd.<br />"></asp:RequiredFieldValidator>
                    </td>
                </tr>
                <tr>
                    <td>
                        <asp:Label Text="" ID="lblNewUserStatus" runat="server" />
                    </td>
                    <td>
                        <asp:Button Text="Aanmaken" runat="server" ID="btnCreateUser" OnClick="btnCreateUser_Click" />
                    </td>
                </tr>
            </table>
         </asp:Panel>

格布鲁伊克斯纳姆酒店
瓦赫特伍德
纳姆
这应该是
^(?=.[A-Z]).*$”

您的原始正则表达式需要一个空字符串
^$
,而前瞻需要一个
大写字母
,因此实际上它与任何内容都不匹配

您可以将所有正则表达式合并为一个:

^(?=.*\d)(?=.*[A-Z]).{8,}$

您必须在验证模式中添加
*

^(?=.*[A-Z]).*$
            ^^

如果您想要求至少有一个大写字母,
[A-Z]
就是您所需要的全部正则表达式。您随处可见的多个前瞻密码正则表达式都是用于一次性完成整个验证的。执行单独的正则表达式匹配非常简单:

  • [0-9]
    匹配至少有一个数字的字符串
  • [A-Z]
    将字符串与至少一个大写ASCII字母匹配,并且
  • {8}
    匹配至少包含八个字符的字符串

@Anona这个问题同样存在于urs的其他正则表达式中。同样地,纠正它们,您也可以一次过应用所有正则表达式。我建议
^(?=\D*\D)(?=[^A-Z]*[A-Z])。{8,}$
。我今天使用的是对比原则:)
^(?=.*\d)(?=.*[A-Z]).{8,}$
^(?=.*[A-Z]).*$
            ^^