C# 在不使用正则表达式的情况下检查特殊字符
我是C#代码的新手,我需要在不使用正则表达式的情况下验证特殊字符的帮助,有人能帮我吗 我正在使用这个代码ATM,想让它在没有正则表达式的情况下工作C# 在不使用正则表达式的情况下检查特殊字符,c#,C#,我是C#代码的新手,我需要在不使用正则表达式的情况下验证特殊字符的帮助,有人能帮我吗 我正在使用这个代码ATM,想让它在没有正则表达式的情况下工作 else if (Regex.IsMatch(textBox2.Text, "^[a-zA-Z ]+$")==false) { MessageBox.Show("Name may not contain any special characters"); } 谢谢 您可能可以循环遍历字符串,并
else if (Regex.IsMatch(textBox2.Text, "^[a-zA-Z ]+$")==false)
{
MessageBox.Show("Name may not contain any special characters");
}
谢谢 您可能可以循环遍历字符串,并将字符与ascii码进行比较
检查它是否在大写和小写ascii码范围内您可能可以循环字符串并将字符与ascii码进行比较
检查它是否在大写和小写ascii代码范围内正则表达式解决方案并不是很糟糕,但如果禁用正则表达式,则可以执行以下操作:
textBox2.Text.All(Char.IsLetter);
更新:
因为您也需要
(空格):
请注意,Char.isleter
将为任何Unicode字母返回true。更严格的版本是:
textBox2.Text.All(c => (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || (c == ' '));
textBox2.Text.All(c=>(c>='A'&&c='A'&&c正则表达式解决方案并不是很糟糕,但是如果正则表达式被禁止,您可以执行以下操作:
textBox2.Text.All(Char.IsLetter);
更新:
因为您也需要
(空格):
请注意,Char.isleter
对于任何Unicode字母都将返回true。更严格的版本是:
textBox2.Text.All(c => (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || (c == ' '));
textBox2.Text.All(c=>(c>='A'&&c='A'&&c我们会,你可以用很多不同的方法来做。例如
- 一个积极的测试,使用Linq使事情变得美好和声明性:
public bool isValid( string s )
{
Func<char,bool> valid = c => { c == ' ' || ( c >= 'a' && c <= 'z' ) || ( c >= 'A' || c <= 'Z' ) } ;
return s.All(valid) ;
}
public bool有效(字符串s)
{
Func valid=c=>{c=''| |(c>='a'和&c='a'|{c=''| |(c>='a'和&c='a'| | c我们会,你可以用很多不同的方法来做。例如
- 一个积极的测试,使用Linq使事情变得美好和声明性:
public bool isValid( string s )
{
Func<char,bool> valid = c => { c == ' ' || ( c >= 'a' && c <= 'z' ) || ( c >= 'A' || c <= 'Z' ) } ;
return s.All(valid) ;
}
public bool有效(字符串s)
{
Func valid=c=>{c==''a'&&c='a'| c{c=''c=''a'&&c=''a'| c为什么要更改它?因为在我的项目中,正则表达式的使用有其缺点,但这是可以有效使用的情况之一。有很多方法可以做到这一点……比如foreach(字符串s中的char c){//然后对照泛型列表或其他东西进行检查。}为什么要更改它?因为在我的项目中,使用正则表达式有其缺点,但这是可以有效使用它的情况之一。有很多方法可以做到这一点…比如foreach(字符串s中的char c){//然后对照通用列表或其他东西检查。}比字符类[a-Za-z]
@NicholasCarey涵盖的范围要大得多-是的,我已经更新了更严格的版本。刷新:)比字符类[a-Za-z]涵盖的范围要大得多
@NicholasCarey-是的,我已经更新了更严格的版本。刷新:)