C# 如果用户在文本框验证c中输入所有特殊字符,则不允许#
我正在进行验证,我必须验证一个文本框,其中我需要禁止输入特殊字符。我的意思是,如果用户只在文本框中填写特殊字符,那么我们需要禁止他,如果他使用测试测试或测试测试或(999)-998-1111,那么我们需要允许用户输入数据 我使用了下面的正则表达式,但这是不允许的,即使我输入一个特殊字符。它显示了我的错误C# 如果用户在文本框验证c中输入所有特殊字符,则不允许#,c#,asp.net,regex,special-characters,C#,Asp.net,Regex,Special Characters,我正在进行验证,我必须验证一个文本框,其中我需要禁止输入特殊字符。我的意思是,如果用户只在文本框中填写特殊字符,那么我们需要禁止他,如果他使用测试测试或测试测试或(999)-998-1111,那么我们需要允许用户输入数据 我使用了下面的正则表达式,但这是不允许的,即使我输入一个特殊字符。它显示了我的错误 <asp:RegularExpressionValidator ID="ReqValContactPerson_SpecialChars" runat="server" CssClass=
<asp:RegularExpressionValidator ID="ReqValContactPerson_SpecialChars" runat="server" CssClass="changecolor"
ControlToValidate="txtFirstName" Display="Dynamic"
ErrorMessage="Please enter valid first name" SetFocusOnError="True"
ValidationExpression="[\%\/\\\&\?\,\'\;\:\!\-]+"
></asp:RegularExpressionValidator>
请帮帮我。下面的正则表达式不允许在该文本框中仅出现上述特殊字符
ValidationExpression="^(?![\%\/\\\&\?\,\'\;\:\!\-]+$).+"
或
不允许仅使用数字和/或非单词字符
ValidationExpression="^(?![\d\W]+$).+"
\W
匹配任何非单词字符<代码>\d+匹配一个或多个数字
也就是说,这将不允许
%&'
,但允许此f%G'
。仅当您希望同时允许空行时,才将+
更改为*
。下面的正则表达式将不允许该文本框上仅出现提及的特殊字符
ValidationExpression="^(?![\%\/\\\&\?\,\'\;\:\!\-]+$).+"
或
不允许仅使用数字和/或非单词字符
ValidationExpression="^(?![\d\W]+$).+"
\W
匹配任何非单词字符<代码>\d+匹配一个或多个数字
也就是说,这将不允许
%&'
,但允许此f%G'
。仅当您希望同时允许空行时,才将+
更改为*
。下面的正则表达式将不允许该文本框上仅出现提及的特殊字符
ValidationExpression="^(?![\%\/\\\&\?\,\'\;\:\!\-]+$).+"
或
不允许仅使用数字和/或非单词字符
ValidationExpression="^(?![\d\W]+$).+"
\W
匹配任何非单词字符<代码>\d+匹配一个或多个数字
也就是说,这将不允许
%&'
,但允许此f%G'
。仅当您希望同时允许空行时,才将+
更改为*
。下面的正则表达式将不允许该文本框上仅出现提及的特殊字符
ValidationExpression="^(?![\%\/\\\&\?\,\'\;\:\!\-]+$).+"
或
不允许仅使用数字和/或非单词字符
ValidationExpression="^(?![\d\W]+$).+"
\W
匹配任何非单词字符<代码>\d+匹配一个或多个数字
也就是说,这将不允许
%&'
,但允许此f%G'
。仅当您还希望允许空行时,才将+
更改为*
。您可以使用LINQ测试它:
string str = "test-test";
bool allow = str.Any(c => Char.IsLetterOrDigit(c)); //true
string str2 = "____!&&**^%$##@";
bool allow2 = str2.Any(c => Char.IsLetterOrDigit(c)); // false
string str3 = "(999)-998-1111";
bool allow3 = str3.Any(c => Char.IsLetterOrDigit(c)); // true
您可以使用LINQ进行测试:
string str = "test-test";
bool allow = str.Any(c => Char.IsLetterOrDigit(c)); //true
string str2 = "____!&&**^%$##@";
bool allow2 = str2.Any(c => Char.IsLetterOrDigit(c)); // false
string str3 = "(999)-998-1111";
bool allow3 = str3.Any(c => Char.IsLetterOrDigit(c)); // true
您可以使用LINQ进行测试:
string str = "test-test";
bool allow = str.Any(c => Char.IsLetterOrDigit(c)); //true
string str2 = "____!&&**^%$##@";
bool allow2 = str2.Any(c => Char.IsLetterOrDigit(c)); // false
string str3 = "(999)-998-1111";
bool allow3 = str3.Any(c => Char.IsLetterOrDigit(c)); // true
您可以使用LINQ进行测试:
string str = "test-test";
bool allow = str.Any(c => Char.IsLetterOrDigit(c)); //true
string str2 = "____!&&**^%$##@";
bool allow2 = str2.Any(c => Char.IsLetterOrDigit(c)); // false
string str3 = "(999)-998-1111";
bool allow3 = str3.Any(c => Char.IsLetterOrDigit(c)); // true
当我添加%&^%&或!@$%^&*()它没有向我显示错误,意味着它接受这个,但我不希望…将额外的特殊字符添加到上面的字符类中。也就是说,
@
,^
等等。但是不要将^
放在character类的第一个位置。看看我的更新…很好,正是我现在需要的!再一次,谢谢:)现在试试。。。我想你不想只允许数字和特殊字符。如果你不想在我添加%&^%&或!@$%时允许\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu^&*()它没有向我显示错误,意味着它接受这个,但我不希望…将额外的特殊字符添加到上面的字符类中。也就是说,@
,^
等等。但是不要将^
放在character类的第一个位置。看看我的更新…很好,正是我现在需要的!再一次,谢谢:)现在试试。。。我想你不想只允许数字和特殊字符。如果你不想在我添加%&^%&或!@$%时允许\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu^&*()它没有向我显示错误,意味着它接受这个,但我不希望…将额外的特殊字符添加到上面的字符类中。也就是说,@
,^
等等。但是不要将^
放在character类的第一个位置。看看我的更新…很好,正是我现在需要的!再一次,谢谢:)现在试试。。。我想你不想只允许数字和特殊字符。如果你不想在我添加%&^%&或!@$%时允许\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu^&*()它没有向我显示错误,意味着它接受这个,但我不希望…将额外的特殊字符添加到上面的字符类中。也就是说,@
,^
等等。但是不要将^
放在character类的第一个位置。看看我的更新…很好,正是我现在需要的!再一次,谢谢:)现在试试。。。我认为您不希望只允许数字字符和特殊字符。如果您不希望允许\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu