C# 在不使用正则表达式的情况下检查特殊字符

C# 在不使用正则表达式的情况下检查特殊字符,c#,C#,我是C#代码的新手,我需要在不使用正则表达式的情况下验证特殊字符的帮助,有人能帮我吗 我正在使用这个代码ATM,想让它在没有正则表达式的情况下工作 else if (Regex.IsMatch(textBox2.Text, "^[a-zA-Z ]+$")==false) { MessageBox.Show("Name may not contain any special characters"); } 谢谢 您可能可以循环遍历字符串,并

我是C#代码的新手,我需要在不使用正则表达式的情况下验证特殊字符的帮助,有人能帮我吗

我正在使用这个代码ATM,想让它在没有正则表达式的情况下工作

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-是的,我已经更新了更严格的版本。刷新:)