안녕하세요. IT김군입니다.


핸드폰 번호를 체크하는 정규식을 사용하려 했는데 JavaScript나 Java의 경우 구글에 무수하게 많은데


C# 정규식의 경우 구글링을 해도 잘 나오지 않아서 직접 만들어야 했습니다.


다른 분들의 경우 제가 만든게 활용할만 하시면 사용하시라고 포스팅합니다.


제가 만든 정규식은 아래와 같습니다.


하이픈 없이 입력 시
@"01{1}[016789]{1}[0-9]{7,8}"

하이픈 포함하여 입력 시
@"01{1}[016789]{1}-[0-9]{3,4}-[0-9]{4}"


하이픈 없이 입력 시에는


10자리나 11자리 (0111231234 혹은 01012341234 등)에 따라


처음 01이 들어오며 세 번째 자리에는 010, 011, 016, 017, 018, 109만 허용할 수 있게 0, 1, 6, 7, 8, 9만 입력할 수 있도록 했습니다.


그리고 뒤에 올 수 있는 7자리 혹은 8자리는 0~9의 숫자만 입력할 수 있도록 체크하였습니다.



하이픈 포함하여 입력 시에는


12자리나 13자리 (011-123-1234 혹은 010-1234-1234 등)에 따라


처음 01이 들어오며 세 번째 자리는 위와 동일하게 하였고, 네 번째 자리에 하이픈(-)을 체크하며 그 다음 3자리나 4자리가 0~9의 숫자만 들어올 수 있고


마지막 4자리가 0~9의 숫자만 들어올 수 있게 체크하였습니다.



그래서 활용방안 소스는 아래와 같이


phoneNumCheck()는 하이픈없이 입력 시에 활용 방안이고


phoneNumCheck2()는 하이픈까지 입력 시 활용 방안입니다.


using System.Text.RegularExpressions;

// 휴대전화번호 체크 (하이픈 없을 시)
private void phoneNumCheck()
{
    string phone = "01012341234";
    if (phone.Length == 10 || phone.Length == 11)
    {
        Regex regex = new Regex(@"01{1}[016789]{1}[0-9]{7,8}");

        Match m = regex.Match(phone);
        if (m.Success)
        {
            MessageBox.Show("@@ Success");
        }
        else
        {
            MessageBox.Show("@@ 휴대전화 번호 아님");
        }
    }
    else
    {
        MessageBox.Show("@@ 자릿수 맞지 않음");
    }

}

// 휴대전화번호 체크 (하이픈 포함)
private void phoneNumCheck2()
{
    string phone = "011-123-1234";
    if (phone.Length == 12 || phone.Length == 13)
    {
        Regex regex = new Regex(@"01{1}[016789]{1}-[0-9]{3,4}-[0-9]{4}");

        Match m = regex.Match(phone);
        if (m.Success)
        {
            MessageBox.Show("@@ Success");
        }
        else
        {
            MessageBox.Show("@@ 휴대전화 번호 아님");
        }
    }
    else
    {
        MessageBox.Show("@@ 자릿수 맞지 않음");
    }

}


잘못된 부분이나 궁금하신 점 댓글주세요.


도움이 되셨다면 공감 한 번씩만 꼭! 부탁드리겠습니다.


감사합니다.












WRITTEN BY
IT김군
S/W 개발자 김군의 메모장

,