코딩ㆍ개발 정보/HTML 연습

[JavaScript] 전화번호 - 표시 하고, 저장은 숫자로만

RioRex 2024. 8. 29.

전화번호를 사용자가 입력할 때, 입력 형식을 자동으로 지정된 형식(예: 010-3333-1234)으로 변환하고, 데이터베이스에는 숫자만 저장되도록 하는 기능을 구현하려면 다음과 같은 단계로 진행할 수 있습니다.

1. 자바스크립트로 입력 형식 처리

사용자가 입력할 때마다 자바스크립트를 사용해 입력된 값을 실시간으로 포맷팅합니다. 이 작업은 oninput 이벤트를 사용하여 입력값을 감지하고, 숫자만 추출한 후 적절한 형식으로 변환한 다음, 다시 입력 필드에 설정하는 방식으로 구현할 수 있습니다.

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>전화번호 입력 포맷</title>
    <script>
        function formatPhoneNumber(input) {
            // 입력된 값에서 숫자만 추출
            let numbers = input.value.replace(/\D/g, '');

            // 길이에 따라 형식 지정
            let formattedNumber = '';
            if (numbers.length <= 3) {
                formattedNumber = numbers;
            } else if (numbers.length <= 7) {
                formattedNumber = numbers.slice(0, 3) + '-' + numbers.slice(3);
            } else if (numbers.length <= 11) {
                formattedNumber = numbers.slice(0, 3) + '-' + numbers.slice(3, 7) + '-' + numbers.slice(7);
            } else {
                formattedNumber = numbers.slice(0, 3) + '-' + numbers.slice(3, 7) + '-' + numbers.slice(7, 11);
            }

            // 포맷팅된 전화번호를 입력 필드에 표시
            input.value = formattedNumber;
        }

        function removeFormattingAndSubmit(form) {
            // DB에 저장하기 전에 숫자만 추출
            const phoneInput = form.phone;
            phoneInput.value = phoneInput.value.replace(/\D/g, '');
            form.submit();
        }
    </script>
</head>
<body>
    <form method="post" action="save_phone.asp" onsubmit="removeFormattingAndSubmit(this)">
        <label for="phone">전화번호:</label>
        <input type="text" id="phone" name="phone" oninput="formatPhoneNumber(this)" maxlength="13">
        <input type="submit" value="저장">
    </form>
</body>
</html>

 

2. 서버 측에서 데이터 저장 처리 (ASP)

이제 숫자로만 이루어진 전화번호를 데이터베이스에 저장합니다.

<%
Dim phoneNumber

' 폼에서 전송된 값 가져오기
phoneNumber = Request.Form("phone")

' 데이터베이스 연결 및 전화번호 저장
Dim conn, sql
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "your_connection_string_here"

sql = "INSERT INTO YourTableName (PhoneNumber) VALUES ('" & phoneNumber & "')"
conn.Execute(sql)

conn.Close
Set conn = Nothing

Response.Write("전화번호가 저장되었습니다.")
%>

 

요약

  • 자바스크립트를 사용해 사용자가 입력한 전화번호를 실시간으로 포맷팅합니다.
  • 제출 시 포맷팅된 값을 다시 숫자만 남도록 변환하고 서버로 전송합니다.
  • 서버 측에서는 변환된 순수 숫자 형태의 전화번호를 데이터베이스에 저장합니다.

이렇게 하면 사용자가 편리하게 전화번호를 입력할 수 있으며, 데이터베이스에는 숫자만 저장됩니다.

반응형

댓글