Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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正则表达式验证程序在Internet Explorer 7上不工作_Asp.net_Regex_Sharepoint_Web Parts - Fatal编程技术网

ASP.NET正则表达式验证程序在Internet Explorer 7上不工作

ASP.NET正则表达式验证程序在Internet Explorer 7上不工作,asp.net,regex,sharepoint,web-parts,Asp.net,Regex,Sharepoint,Web Parts,我使用以下正则表达式验证器来确保密码输入满足1个大写、1个小写、1个数字和1个允许的特殊字符的要求: <asp:RegularExpressionValidator ID="rev_txtNewPassword" runat="server" Display="Dynamic" ErrorMessage=" Password does not meet requirements" ControlToValidate="txtNewPassword" ValidationGr

我使用以下正则表达式验证器来确保密码输入满足1个大写、1个小写、1个数字和1个允许的特殊字符的要求:

    <asp:RegularExpressionValidator ID="rev_txtNewPassword" runat="server" Display="Dynamic"
    ErrorMessage=" Password does not meet requirements" ControlToValidate="txtNewPassword" ValidationGroup="password"
    ValidationExpression="^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[!@#$%^&*]).{8,16}$"></asp:RegularExpressionValidator>

这适用于FireFox、Chrome、Safari、InternetExplorer8和9。它在InternetExplorer7上不起作用。无论在密码框中输入什么,它都表示不符合要求。这是自定义SharePoint 2010 web部件的一部分

你知道为什么表达式验证器不只是在IE7上工作吗


谢谢

即使它有效,用户如何知道如何形成传递该表达式的有效密码?他们是不是应该一直猜到答案?如果您需要如此复杂的密码,为您的用户生成它可能是礼貌的。即使你为用户列出了所有的规则,一旦规则变得太复杂,他们也会很费劲

ASP.NET成员资格有一个基本密码生成器,例如

Membership.GeneratePassword(8, 2);
如果您想要更复杂的内容,可以使用RNGCryptoServiceProvider.GetBytes()来生成随机字节数组,然后使用模来限制范围,将这些字节转换为字符

还请注意,您可以在以下位置设置密码强度正则表达式:


根据OP的要求,我将解决方案放在这里,这样每个人都可以认为这个问题已经解决。问题是由故障引起的,最初的解决方案是由Alan Moore提出的。可以在以下位置找到解决方案:


可能重复(或者至少这个问题的解决方案也会对您有效):这就是问题所在,您应该将答案作为答案发布,以便我可以标记它。页面上有说明。我们的用户已经习惯了它,因为它与我们的许多应用程序的要求相同。此外,此实用程序还用于为非常旧的应用程序设置SQL用户帐户密码(不在数据库中,而是实际的SQL用户)。这个解决方案实际上与手头的问题没有任何关系。。。
<membership defaultProvider="SqlProvider"
  userIsOnlineTimeWindow = "20>
  <providers>
    <add
      name="SqlProvider"
      type="System.Web.Security.SqlMembershipProvider"
      connectionStringName="SqlServices"
      requiresQuestionAndAnswer="true"
      passwordStrengthRegularExpression="^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[!@#$%^&*]).{8,16}$"
      />
   </providers>
</membership>