例如{“1}}值”Abcdefg“。 这将通过前2个条件但未通过以下代码中的第2个。
这是输出的内容:
密码至少应包含一个数值(0到9)。 密码应包含至少一个非字母字符(for 例如:!,$,#,%)。
注意:我在.aspx页面中使用标签输出此文本。
newPassword
我希望它输出:
密码至少应包含一个数字值(0到9)。
密码应包含至少一个非字母字符(for 例如:!,$,#,%)。
我做错了什么?
答案 0 :(得分:4)
您应该使用<DockPanel>
<StackPanel>
<!-- Items ... -->
<StackPanel.Style>
<Style TargetType="StackPanel">
<Setter Property="Orientation" Value="Horizontal"/>
<Setter Property="DockPanel.Dock" Value="Top"/>
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=grid1,Path=ActualWidth,Converter={StaticResource RestrictedWidthOverflowConverter}}" Value="True">
<Setter Property="Orientation" Value="Vertical"/>
<Setter Property="DockPanel.Dock" Value="Left"/>
</DataTrigger>
</Style.Triggers>
</Style>
</StackPanel.Style>
</StackPanel>
<!-- The main content area element -->
<Border BorderThickness="5" BorderBrush="Green" Background="Gray"/>
</DockPanel>
两次而不是一次:
AppendLine
否则,第一个errorMessage.AppendLine("Password should contain at least one numeric value (0 through 9).");
errorMessage.AppendLine();
不会产生新行。
答案 1 :(得分:1)
感谢@MartinVerjans和@Ian指出我正确的方向。我找到了解决方案。
我改变了这一行..
errorMessage.AppendLine();
到此..
errorMessage.Append("<br />");
答案 2 :(得分:0)
您的代码确实实际上正如您编码一样生成一个新行。如果您需要多个,则需要多次使用AppendLine()
:
使用的代码:
namespace ConsoleApp6
{
using System;
using System.Text;
using System.Text.RegularExpressions;
internal static class Program
{
private static string ValidatePasswordComplexity(string newPassword)
{
StringBuilder errorMessage = new StringBuilder();
var hasNumber = new Regex(@"[0-9]+");
var hasUpperChar = new Regex(@"[A-Z]+");
var hasLowerChar = new Regex(@"[a-z]+");
var hasSymbols = new Regex(@"[!@#$%^&*()_+=\[{\]};:<>|./?,-]");
var criteria = 0;
if (hasUpperChar.IsMatch(newPassword))
criteria++;
else
{
errorMessage.Append("Password should contain at least one English uppercase letter (A through Z).");
errorMessage.AppendLine();
}
if (hasLowerChar.IsMatch(newPassword))
criteria++;
else
{
errorMessage.Append("Password should contain at least one English lowercase letter (a through z).");
errorMessage.AppendLine();
}
if (hasNumber.IsMatch(newPassword))
criteria++;
else
{
errorMessage.Append("Password should contain at least one numeric value (0 through 9).");
errorMessage.AppendLine();
}
if (hasSymbols.IsMatch(newPassword))
criteria++;
else
{
errorMessage.Append("Password should contain at least one non-alphabetic character (for example: !, $, #, %).");
}
if (criteria >= 3)
return "Success";
else
return errorMessage.ToString();
}
internal static void Main()
{
var text = ValidatePasswordComplexity("Abcdefg");
Console.WriteLine(text);
Console.ReadLine();
}
}
}