스크립트 질문드립니다. 채택완료

2년 전 조회 1,587

안녕하세요

 

폼메일을 활용하고 있는데

 

전화번호 부분을 11자리 이하로 입력되는 스팸이 많이 들어와서

 

딱 11자리가 되어야 넘어갈 수 있게 스크립트를 넣었는데

 

아래와 같이 해보니 그냥 넘어가 버리더라구요

 

wr_name과 wr_2는 잘 막고 있습니다.

 

 

Copy
<script>
                function form_Check3(){
                    if(form3.wr_name.value == ''){
                        alert("이름을 입력해주십시오.");
                        form3.wr_name.focus();
                        return false;
                    }
                    if(form3.wr_2.value == ''){
                        alert("연락처를 입력해주십시오.");
                        form3.wr_2.focus();
                        return false;
                    }
                    if (!preg_match('/^\d{3}-?\d{3,4}-?\d{4}$/', wr_2) ) {
                        alert('정확한 핸드폰 번호를 입력해주십시오.');
                    }
                    document.getElementById("btn_send").disabled = "disabled";
                    return true;
                    }
            </script>

 

 

                    if (!preg_match('/^\d{3}-?\d{3,4}-?\d{4}$/', wr_2) ) {
                        alert('정확한 핸드폰 번호를 입력해주십시오.');
                    }

 

이걸 퍼와서 적용해보았는데 안되더라구요,.

 

고수님들의 조언 부탁드립니다. ㅠ

 

답변 2개

채택된 답변
+20 포인트

Copy
if (!preg_match('/^\d{3}-?\d{3,4}-?\d{4}$/', wr_2) ) {

    alert('정확한 핸드폰 번호를 입력해주십시오.');

}

여기를

Copy
if (/^\d{3}-?\d{3,4}-?\d{4}$/.test(form3.wr_2.value) === false) {

    alert('정확한 핸드폰 번호를 입력해주십시오.');

}

 

이렇게 바꿔보세요.

preg_match는 php용 함수입니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

답변감사합니다.
000-0000-0000
형식이 아니라
00000000000
처럼 11자리만 들어가게 하려면 어떻게 해야 할까요
10자리도 안되고 딱 11자리가 되어야 될수있도록이요...
죄송합니다. ㅠ

댓글을 작성하려면 로그인이 필요합니다.

다음과 같이 처리하는것도 방법일것 같습니다.

Copy
<?php
function alert($msg) {
    die('<script>alert("' . addslashes($msg) . '"); history.back();</script>');
}

if (empty($_POST) == false) {
    $wr_name = isset($_POST['wr_name']) ? $_POST['wr_name'] : '';
    $wr_2 = isset($_POST['wr_2']) ? $_POST['wr_2'] : '';

    if (!preg_match('/^\d{3}-?\d{3,4}-?\d{4}$/', $wr_2)) {
        alert('정확한 핸드폰 번호를 입력해주십시오.');
    }

    echo '<pre>';
    echo $wr_name . PHP_EOL;
    echo $wr_2 . PHP_EOL;
    echo '</pre>';
    exit();
}
?>

<script>
    function form_Check3(){
        /*if(form3.wr_name.value == ''){
            alert("이름을 입력해주십시오.");
            form3.wr_name.focus();
            return false;
        }
        if(form3.wr_2.value == ''){
            alert("연락처를 입력해주십시오.");
            form3.wr_2.focus();
            return false;
        }
        if (!/^\d{3}-?\d{3,4}-?\d{4}$/.test(form3.wr_2)) {
            alert('정확한 핸드폰 번호를 입력해주십시오.');
            return false;
        }*/
        document.getElementById("btn_send").disabled = "disabled";
        return true;
        }
</script>

<form method="post" name="form3" onsubmit="return form_Check3()">
    <ul>
        <li><label>wr_name: <input type="text" name="wr_name" required="required" /></label></li>
        <li><label>wr_2: <input type="text" name="wr_2" required="required" maxlength="13" pattern="^\d{3}-?\d{3,4}-?\d{4}$" /></label></li>
        <li><input type="submit" id="btn_send" /></li>
    </ul>
</form>
로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고