본문으로 바로가기

C# 문자가 한글, 영문, 특수문자인제 체크하는 로직 안내

프로그램 개발 시 문자가 한글인지 영문인지 숫자인지 또한 한글이나 영문이 포함되어 있는지 체크해야하는 부분이 있을 텐데요.  c#에서 개발 할 때 고유코드로 체크할 수 있습니다. 

문자는 char의 여러개로 되어 있는 것이기 때문에 배열로 분리해서 하나씩 체크할 수 있습니다. 

한글, 영문 ,숫자 ,특수문자를 준비하고 반복문을 통해 하나씩 어떤 문자 인지 체크하는 소소를 알아보겠습니다.


모든 문자가 포함된 "사e1%" 글자가 있습니다.  반복문을 통해서 한글자씩 어떤 문자인지 확인하시면 됩니다.


foreach 문을 통해서 첫번째 값은 '사' 값이 됩니다.

CheckingString 함수에 값을 보내는데요 값을 알아보겠습니다.

CheckingString("사") 를 보내 결과값을 얻는 것이지요.

한글, 영문, 특수문자인제 체크하는 로직



CheckingString 메소드 부분 입니다. 

ch 단어의 코드값을 확인해서 한글인지, 영문인지 숫자인지 구분하고

지정한 특수문자가 포함되어 있는지 체크하지 하는 역활을 합니다.


"사" 값을 보냈더니 한글부분에 조건이 만족되서 'k'값을 리턴합니다.

한글의 조건값인 if ((0xAC00 <= ch && ch <= 0xD7A3) || (0x3131 <= ch && ch <= 0x318E)) 를 만족하기 때문입니다.

한글인지, 영문인지 숫자인지 구분



전체 문자 중 두번째 글자인 'e'글자 입니다. 

두번째 글자




값을 확인해보니 영어부분 조건에 만족하는것을 확인할 수 있습니다.

E값을 리턴하네요

영어의 코드 범위는  if ((0x61 <= ch && ch <= 0x7A) || (0x41 <= ch && ch <= 0x5A)) 입니다.

 영어부분 조건에 만족하는것을 확인



세번째 값인 1입니다.  숫자값이네요.

세번째 값인



숫자값도 문제없이 숫자부분에 조건에 만족하는것을 확인할 수 있습니다.

근데 왜 숫자값인데 제가 왜 "S"를 리턴하게 했는지 기억이 안나네요^^

숫자의 조건값은 if (0x30 <= ch && ch <= 0x39) 입니다.

숫자부분에 조건에 만족하는것을 확인



네번째 값은 '%' 입니다. 



상단 지정한 특수문자에 포함되었는지 확인시킨 뒤 조건에 만족하면 'O' 를 리턴합니다. 

strAcChart 에 있는 값 중 입력한 값이 포함되어 있으면 'O'를 리턴시켜 줍니다. 

비밀번호에서 특수한 키를 사용하는지 체크 시 사용을 하기도 합니다.  



모두 한번에 체크를 하면 KESO가 리턴되네요

글자를 CHAR로 하나씩 보내서 체크하시면 됩니다. 



전체 코드 입니다. 

  protected void Page_Load(object sender, EventArgs e)

    {

        string strHanText = "사e1%";


        string strResult = "";

        foreach (char ch in strHanText) {

            strResult+= CheckHanEng.CheckingString(ch);

        }     

    }


========================================


public static string CheckingString(char ch) {


        string strResult= null;

        string strAcChar = "!@#$%^&*()?><";

        //한글

        if ((0xAC00 <= ch && ch <= 0xD7A3) || (0x3131 <= ch && ch <= 0x318E))

        {

            strResult = "K";

        }

        //영어

        else if ((0x61 <= ch && ch <= 0x7A) || (0x41 <= ch && ch <= 0x5A))

        {

            strResult = "E";

        }

        else if (0x30 <= ch && ch <= 0x39)  //숫자

        { 

            strResult = "S";

        }

        else if (strAcChar.Contains<char>(ch))  //특수문자외 지정된 문자

        {

            strResult = "O";

        }


       ;

        return strResult;

    }

 이상 C# 문자가 한글, 영문, 특수문자인제 체크하는 로직을 알아보았습니다.

반응형