<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>
이글루스 가든 - 프로그래머 최고수가 되는 길
덧글
답변이 미흡하여 죄송합니다.
넘이도 님께 질문 하나 해도 되겠죠? 판별식은 어떻게 구성되는 것을 판별식이라고 지칭하는 건가요?
대소문자 판별에 정규식이 아닌 루프를 도는 방식을 쓰신 특별한 이유가 있으신가 해서요.
뭐 성능상의 이슈라던가. 호환성문제라던가 하는.
정규식으로 쓰면 다음과 같은 형태가 되겠죠.
<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>
아네~~ 정규식을 말씀하신거였군요.
특별히 어떤 이슈가 있어서 사용한 것은 아닙니다.
정규식, 루프든 어떤 형식을 사용하는가는 코더가 결정할 문제죠..
넘이는 영어와 숫자만 들어가게 하는 아이디 입력방식이 아닌 영어와 숫자가 혼합된 아이디 입력방식이라서 제어방식에서 편리한 루프, 조건식을 선택했던거 같네요.
어떤 방식이든 적제적소에 넣은 것은 프로그래머의 판단에 따른것이 아닐까요?
말 그대로 정규식으로 처리가능한데 굳이 저렇게 한 이유라도?
프로그래머 나름의 자신의 프로그래밍 스타일이 있는 것이죠.
프로그래머가 자신의 로직이나 코딩 방식에 맞춰 필요한 내용을 적제적소에 넣어주면 자기 자신의 프로그래밍 스타일로서의 정석이라고 생각합니다.
필요에 따라서는 위와 같은 방식도 쓰겠죠.
프로그래밍에 있어서 반드시 안되는 방식은 없다고 생각합니다. 지향해야할 부분이 있는 것 뿐입니다.
예제는 예제로 받아들이고 개선하고 응용의 몫은 프로그래머의 몫이겠죠.
그럼 넘이가 다시 질문을 던지겠습니다.
정규식과 위에서 처리할 때 프로그래밍, 시스템상 어떠한 이슈가 발생된다고 생각하십니까?