구글상단


[JavaScript] 회원가입시 영문과 숫자로만 아이디를 부여하는 스크립트 by 놀라운넘

<SCRIPT LANGUAGE="JavaScript">
<!--
 function id_check(id_no){
  var userid = id_no
  var check_ok="y"
  var check_ok2="n"
  var len=userid.length;
  var no_name="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
  //영문이나 숫자, 특수문자가 들어갔는지 체크해주는 변수...
 
  for ( i = 0; i < userid.length; i++){
  //글자의 길이만큼 돌면서 비교문을 실행한다.
   code = userid.charAt(i);
   if ((code >= 'a' && code <= 'z') || (code >= 'A' && code <= 'Z') || (code >= '0' && code <= '9') || code=='_'){
   // 만약에 영어 와 숫자가 포함되어 있다면..
    if(no_name.indexOf(userid.substring(i,i+1))>0){
    //영문자가 들어갔는지 체크해줍니다...
     check_ok2="y" //영문자가 하나라도 들어가 있으면
    }

   }else{
   // 만약 영어와 숫자를 제외한 다른 문자가 포함 되어 있다면
    alert("아이디는 숫자와 소문자영문의 조합으로 이루어져야 합니다...")
    document.mem_write.mt_id.value=""
    document.mem_write.mt_id.blur();
     document.mem_write.mt_id.focus();
    check_ok="n"
    return false;
   }
  }
  if (check_ok=="y" && check_ok2=="y"){
  //영어와 숫자로 조합된 아이디이면...
   window.open("id_check.asp?id_name="+id_no,"new","width=460,height=243")
   document.mem_write.mt_id.value=""
   document.mem_write.mt_id.blur();
    document.mem_write.mt_id.focus();
  }else{
   alert("아이디는 숫자와 소문자영문의 조합으로 이루어져야 합니다...")
   document.mem_write.mt_id.value=""
   document.mem_write.mt_id.blur();
    document.mem_write.mt_id.focus();
   return false; 
  }
 }   


 function window_open(id_name){
  var len=id_name.length;

  if (id_name=="" || len<3){
   alert("아이디를 입력하여주십시오...\n아이디는 3~12자리입니다...")
   document.mem_write.mt_id.focus();
   return false;
  }else{
   id_check(id_name)
  }
 }

 function window_open2(id_name2){
  if (document.mem_write.id_check.value=="y"){
  //중복체크를 했을 경우
   alert("중복확인을 하셔야 합니다..")
   document.mem_write.id_check.value="n"
   id_check(id_name2)
  }
 }
//-->
</SCRIPT>


이글루스 가든 - 프로그래머 최고수가 되는 길

덧글

  • fakefake 2009/09/03 18:56 # 삭제 답글

    판별식으로 구성하면 안되는 이유가 있나요?
  • 놀라운넘 2009/09/04 11:12 #

    안녕하세요. 위에 스크립트로 제어한 부분은 그냥 예제일뿐입니다. 반드시 저렇게 해야 한다는 것은 아닙니다. 님께서 말씀하신 판별식이 어떤 방식인지는 잘 모르겠스지만, 넘이는 항상 프로그래밍에 정도는 없다고 생각합니다. 그러므로 안되는 이유는 없겠죠. 제가 올린 스크립트가 미흡하다면 더 보완을 해서 개선을 해서 사용할 수 있듯이 님께서 말씀하신 판별식으로 구성하여 잘 사용이 가능하다면 좋은것이고 미흡하다면 또한 보완해서 개선해서 사용하면 되지 않을까요?
    답변이 미흡하여 죄송합니다.

    넘이도 님께 질문 하나 해도 되겠죠? 판별식은 어떻게 구성되는 것을 판별식이라고 지칭하는 건가요?
  • fakefake 2009/09/04 13:56 # 삭제

    죄송합니다. 정규식을 잘못썼습니다. T_T
    대소문자 판별에 정규식이 아닌 루프를 도는 방식을 쓰신 특별한 이유가 있으신가 해서요.
    뭐 성능상의 이슈라던가. 호환성문제라던가 하는.
    정규식으로 쓰면 다음과 같은 형태가 되겠죠.

    <html>
    <head>
    <script language="javascript">
    function test(obj) {
    var re = /[^a-zA-Z0-9]{1}/;
    if( re.test(obj.value) ) {
    alert("알파벳과 숫자만 허용됩니다.");
    return false;
    }
    }
    </script>
    </head>
    <body>
    <input type="text" onkeydown="return test(this);"/>
    </body>
    </html>

  • 놀라운넘 2009/09/04 16:31 #

    ^^;
    아네~~ 정규식을 말씀하신거였군요.
    특별히 어떤 이슈가 있어서 사용한 것은 아닙니다.

    정규식, 루프든 어떤 형식을 사용하는가는 코더가 결정할 문제죠..
    넘이는 영어와 숫자만 들어가게 하는 아이디 입력방식이 아닌 영어와 숫자가 혼합된 아이디 입력방식이라서 제어방식에서 편리한 루프, 조건식을 선택했던거 같네요.
    어떤 방식이든 적제적소에 넣은 것은 프로그래머의 판단에 따른것이 아닐까요?
  • 기혁빠돌 2009/09/07 12:58 # 답글

    근데 놀라운넘님이 하신 방법은 적제적소라는 표현에 물의가 있는듯한데요?
    말 그대로 정규식으로 처리가능한데 굳이 저렇게 한 이유라도?
  • 놀라운넘 2009/09/07 13:34 #

    프로그램을 하는데 있어서 정해진 틀은 없죠.
    프로그래머 나름의 자신의 프로그래밍 스타일이 있는 것이죠.
    프로그래머가 자신의 로직이나 코딩 방식에 맞춰 필요한 내용을 적제적소에 넣어주면 자기 자신의 프로그래밍 스타일로서의 정석이라고 생각합니다.
    필요에 따라서는 위와 같은 방식도 쓰겠죠.
    프로그래밍에 있어서 반드시 안되는 방식은 없다고 생각합니다. 지향해야할 부분이 있는 것 뿐입니다.
    예제는 예제로 받아들이고 개선하고 응용의 몫은 프로그래머의 몫이겠죠.

    그럼 넘이가 다시 질문을 던지겠습니다.
    정규식과 위에서 처리할 때 프로그래밍, 시스템상 어떠한 이슈가 발생된다고 생각하십니까?
댓글 입력 영역


[BEST] Funny baby videos

통계 위젯 (화이트)

36
26
1046273

코튜버

[TOP] KoTuber Funny videos

구글 애드센스