ASP.NET正则表达式验证程序在Internet Explorer 7上不工作
我使用以下正则表达式验证器来确保密码输入满足1个大写、1个小写、1个数字和1个允许的特殊字符的要求: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
<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>