如何在C#中找到包含!、@等特殊字符的字符串

问题描述 投票:0回答:1

我正在做一项学校作业,必须使用扩展方法来查找包含特殊字符的字符串,例如 '!'、'@'、'#'、'$'、'%'、'^'、'&' , '*'。

namespace ExtensionMethodAssignment
{

        public class CheckID
        {
            public bool IsAllowedID(string id)
            {
                string specialChar = @"!@#$%^&*";
                foreach (var identification in specialChar)
                {
                    if(id.Contains(identification)) return true;
                }
                return false;
            }

        }


        static void Main(string[] args)
        {
            Console.WriteLine("Type your ID : ");
            string id = Console.ReadLine();
            
            if (id.IsAllowedID() == true)
            {
                Console.WriteLine("ID is not allowed. \n !, @, #, $, %, ^, &, and * are not allowed.");
            }
            else
            {
                Console.WriteLine($"{id} is allowed.");
            }
        }

    }
}

我上面写了一个cod但是我不知道如何使用它作为扩展方法。我想这似乎只是制作一个简单的空方法名称 IsAllowedID,然后添加到 Main 方法上,但我不知道如何。

c# char extension-methods
1个回答
0
投票

C# 中的静态扩展类可以像下面这样使用:


public static class IdentityExtension
{
    private static Regex ValidationRegex = new Regex("[!@#$%^&*]");

    public static bool IsIdValid(this string id)
    {
        return !ValidationRegex.IsMatch(id);
    }
}

由于“ValidateId”方法采用带有“this”关键字的字符串,因此该方法是一个扩展,可以像下面这样使用:

var fooId = "!fooId";
Console.WriteLine(fooId.IsIdValid());

在这种情况下输出将为 false,因为“fooId”有“!”作为一个元素。

© www.soinside.com 2019 - 2024. All rights reserved.