채택완료

게시판 작성자 한글로만 쓸 수 있게

2023-10-16 (월) 15:57:37 3,316

스팸이 워낙 많이 들어와서 그러는데 작성자를 한글로만 작성하게 할 수 있나요?

Copy
<input type="text" name="wr_name" value="<?php echo $name ?>" id="wr_name" required class="frm_input half_input required" placeholder="이름">
|

답변 5개 / 댓글 2개

채택된 답변
+20 포인트
Copy
<input type="text" name="wr_name" id="wr_name" required class="frm_input half_input required" placeholder="이름">

<script>
document.getElementById('wr_name').addEventListener('input', function() {
  var nameValue = this.value;
  var isKorean = /^[가-힣]+$/.test(nameValue);

  if (!isKorean) {
    alert('한글로만 작성해주세요.');
    this.value = ''; // 입력 필드를 비워도록 설정
  }
});
</script>

답변에 대한 댓글 1개

채택 감사 합니다.
Copy
<?php

function is_korean($str) {
    $regexp_korean = '/^[\x{1100}-\x{11FF}\x{3130}-\x{318F}\x{A960}-\x{A97F}\x{D7B0}-\x{D7FF}\x{AC00}-\x{D7AF}]+$/u';    
    return preg_match($regexp_korean, $str) === 1;
}

 

$wr_name = isset($_REQUEST['wr_name']) ? $_REQUEST['wr_name'] : '';

if (is_korean($wr_name) == false) {

    // failure

} else {

    // success

}

?>

이렇게도 한번 해보세요~

1, Javascript 사용

document.getElementById('wr_name').addEventListener('input', function() {
    var regex = /^[가-힣]+$/;
    if (!regex.test(this.value)) {
        this.value = '';
        alert('이름은 한글만 입력할 수 있습니다.');
    }
});
 

2.  넘어온 값을 체크

if (!preg_match('/^[가-힣]+$/', $_POST['wr_name'])) {
    // 에러 처리
}
 

class="frm_input half_input required hangul"

클래스에 hangul 추가하세요

Copy
<input type="text" name="wr_name" value="<?php echo $name ?>" id="wr_name" required class="only_kor frm_input half_input required" placeholder="이름">
 

$(function(){
       $(".only_kor").keyup(function (event) {
            regexp = /[a-z0-9]|[ \[\]{}()<>?|`~!@#$%^&*-_+=,.;:\"'\\]/g;
            v = $(this).val();
            if (regexp.test(v)) {
                alert("한글만 입력가능 합니다.");
                $(this).val(v.replace(regexp, ''));
            }
        });
});

이런식으로 하시면 가능합니다.

답변에 대한 댓글 1개

이 방법으로 잘 적용됐어요 감사합니다!

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