[C#] 문자열에 C #의 문자 만 포함되어 있는지 확인

입력 문자열이 있고 다음이 포함되어 있는지 확인하고 싶습니다.

  • 글자 만
  • 문자와 숫자 만
  • 문자, 숫자 또는 밑줄 만

명확히하기 위해 코드에 3 가지 사례가 있으며 각각 다른 검증을 요구합니다. C #에서 이것을 달성하는 가장 간단한 방법은 무엇입니까?



답변

글자 만 :

Regex.IsMatch(input, @"^[a-zA-Z]+$");

문자와 숫자 만 :

Regex.IsMatch(input, @"^[a-zA-Z0-9]+$");

문자, 숫자 및 밑줄 만 :

Regex.IsMatch(input, @"^[a-zA-Z0-9_]+$");


답변

bool result = input.All(Char.IsLetter);

bool result = input.All(Char.IsLetterOrDigit);

bool result = input.All(c=>Char.IsLetterOrDigit(c) || c=='_');


답변

문자 만 :

Regex.IsMatch(theString, @"^[\p{L}]+$");

문자와 숫자 :

Regex.IsMatch(theString, @"^[\p{L}\p{N}]+$");

문자, 숫자 및 밑줄 :

Regex.IsMatch(theString, @"^[\w]+$");

이러한 패턴은 국제 문자와도 일치합니다 ( a-z구문 사용과 반대 ).


답변

Regex를 사용하지 않고 .NET 2.0 프레임 워크 (일명 LINQ)를 사용하는 사람들을 위해 :

편지 만 :

public static bool IsAllLetters(string s)
{
    foreach (char c in s)
    {
        if (!Char.IsLetter(c))
            return false;
    }
    return true;
}

숫자 만 :

    public static bool IsAllDigits(string s)
    {
        foreach (char c in s)
        {
            if (!Char.IsDigit(c))
                return false;
        }
        return true;
    }

숫자 또는 문자 만 :

    public static bool IsAllLettersOrDigits(string s)
    {
        foreach (char c in s)
        {
            if (!Char.IsLetterOrDigit(c))
                return false;
        }
        return true;
    }

숫자 나 문자 또는 밑줄 만 :

    public static bool IsAllLettersOrDigitsOrUnderscores(string s)
    {
        foreach (char c in s)
        {
            if (!Char.IsLetterOrDigit(c) && c != '_')
                return false;
        }
        return true;
    }


답변

정규 표현식을 사용하는 것이 좋습니다.

public bool IsAlpha(string input)
{
    return Regex.IsMatch(input, "^[a-zA-Z]+$");
}

public bool IsAlphaNumeric(string input)
{
    return Regex.IsMatch(input, "^[a-zA-Z0-9]+$");
}

public bool IsAlphaNumericWithUnderscore(string input)
{
    return Regex.IsMatch(input, "^[a-zA-Z0-9_]+$");
}


답변

문자열의 문자를 반복하고 Char 메서드 IsLetter를 사용하여
확인할 수 있지만 String 메서드 IndexOfAny 를 사용하여 문자열 에없는 다른 문자를 검색 하는 트릭을 수행 할 수도 있습니다.


답변

문자열 문자를 반복하고 ‘IsLetter’및 ‘IsDigit’이라는 ‘Char’기능을 사용하십시오.

더 구체적인 것이 필요하면 Regex 클래스를 사용하십시오.