# isValidDate( v_year, v_month, v_day) | 유효한 날짜인지 체트
function isValidDate( v_year, v_month, v_day)
{
var today = new Date();
var d_year = v_year*1;
var d_month = v_month*1;
var d_day = v_day*1;
/* 과거 날짜여야 함. */
if( v_year > today.getYear() )
return 'N';
else if( v_year == today.getYear() && v_month*1 > (today.getMonth()*1+1))
return 'N';
else if( v_year == today.getYear() && v_month*1 == (today.getMonth()*1+1) && v_day > today.getDate())
return 'N';
/* 달별 일 check */
if( d_month == 1 || d_month == 3 || d_month == 5 || d_month == 7 || d_month == 8 || d_month == 10 || d_month == 12){
if( d_day > 31 || d_day < 1) return 'N';
} else if(d_month == 4 || d_month == 6 || d_month == 9 || d_month == 11 ){
if( d_day > 30 || d_day < 1 ) return 'N';
} else if( d_month == 2 ) {
if( ((d_year%4) == 0 && (d_year%100)!= 0) || ((d_year%100) == 0 && (d_year%400) == 0) ){
if( d_day > 29 || d_day < 1 ) return 'N';
} else {
if( d_day > 28 || d_day < 1 ) return 'N';
}
}
return 'Y';
}
# isMoreThan14age(socno1, checkYear) | 14세 이상인지 확인
function isMoreThan14age(socno1, checkYear)
{
var u_year;
var u_month;
var u_day;
var v_age;
var v_today = new Date();
/* alert( socno1 + ", " + checkYear); */
if( checkYear > 0 && checkYear < 3)
u_year = "19" + socno1.substring(0, 2)
else if(checkYear > 2 && checkYear < 5)
u_year = "20" + socno1.substring(0, 2)
else return 'wrong'; // 2002.10.8 주민등록뒷자리 첫번째 번호 유효성 체크 (1,2,3,4) are only valid -- by muse
u_month = socno1.substring(2, 4);
u_day = socno1.substring(4);
/* alert( socno1.substring(0, 2) + "-" + u_year + ", " + u_month + ", " + u_day ); */
var rVal = isValidDate(u_year, u_month, u_day );
if( rVal == 'N' )
return 'I';
else if( rVal == 'Y' ){
v_age = v_today.getYear()*1 - u_year*1;
if( u_month*1 > (v_today.getMonth*1+1) ){
v_age -= 1;
} else if( u_month*1 == (v_today.getMonth()*1+1) && u_day*1 > v_today.getDate()*1 ){
v_age -= 1;
}
}
if( v_age < 14 ) return 'N';
else if( v_age >= 14 && v_age < 18 ) return 'M';
else return 'Y';
}
# checkDigit_socno(socno) | 주민번호 digit 체크
function checkDigit_socno(socno)
{
var socnoStr = socno.toString();
a = socnoStr.substring(0, 1);
b = socnoStr.substring(1, 2);
c = socnoStr.substring(2, 3);
d = socnoStr.substring(3, 4);
e = socnoStr.substring(4, 5);
f = socnoStr.substring(5, 6);
g = socnoStr.substring(6, 7);
h = socnoStr.substring(7, 8);
i = socnoStr.substring(8, 9);
j = socnoStr.substring(9, 10);
k = socnoStr.substring(10, 11);
l = socnoStr.substring(11, 12);
m = socnoStr.substring(12, 13);
temp=a*2+b*3+c*4+d*5+e*6+f*7+g*8+h*9+i*2+j*3+k*4+l*5;
temp=temp%11;
temp=11-temp;
temp=temp%10;
if(temp == m)
return 'Y';
else
return 'N';
}
# 숫자인지 확인
function isNumeric(s)
{
var isNum = /\d/;
if( !isNum.test(s) ) return 0;
return 1;
}
# 숫자인지 확인
function isNumer(s)
{
var isNum = /^[\d]+$/;
if( s.search(isNum) ) return 0;
return 1;
}
# 한글인지 확인
function isHangul(s)
{
var len;
len = s.length;
for (var i = 0; i < len; i++) {
if (s.charCodeAt(i) != 32 && (s.charCodeAt(i) < 44032 || s.charCodeAt(i) > 55203))
return 0;
}
return 1;
}
# 공백이 있는지 확인
function checkSpace( str )
{
if(str.search(/\s/) != -1){
return 1;
} else {
return "";
}
}
# 유효한 ID 체크
function validID( str )
{
/* check whether input value is included space or not */
if( str == ""){
alert("아이디를 입력하세요.");
return 0;
}
var retVal = checkSpace( str );
if( retVal != "" ) {
alert("아이디는 빈 공간 없이 연속된 영문 소문자와 숫자만 사용할 수 있습니다.");
return 0;
}
if( str.charAt(0) == '_') {
alert("아이디의 첫문자는 '_'로 시작할수 없습니다.");
return 0;
}
/* checkFormat */
var isID = /^[a-z0-9_]{3,12}$/;
if( !isID.test(str) ) {
alert("아이디는 3~12자의 영문 소문자와 숫자,특수기호(_)만 사용할 수 있습니다.");
return 0;
}
return 1;
}
# 유효한 비밀번호 체크
function validPWD( str )
{
var cnt=0;
if( str == ""){
alert("비밀번호를 입력하세요.");
return 0;
}
/* check whether input value is included space or not */
var retVal = checkSpace( str );
if( retVal != "") {
alert("비밀번호는 빈공간 없이 연속된 영문 소문자와 숫자만 사용할 수 있습니다.");
return 0;
}
for( var i=0; i < str.length; ++i)
{
if( str.charAt(0) == str.substring( i, i+1 ) ) ++cnt;
}
if( cnt == str.length ) {
alert("보안상의 이유로 한 문자로 연속된 비밀번호는 허용하지 않습니다.");
return 0;
}
/* limitLength */
//var isPW = /^[a-z0-9_~`!@\\#\$%\^&\*()-\+=\|\[\]\{\};:'"<,>.?/]{6,12}$/;
var isPW = /^[a-z0-9]{6,12}$/;
if( !isPW.test(str) ) {
alert("비밀번호는 6~12자의 영문 소문자와 숫자만 사용할 수 있습니다.");
return 0;
}
return 1;
}
# 이메일 유효성 체크
function validEMAIL( str )
{
/* check whether input value is included space or not */
if(str == ""){
alert("이메일 주소를 입력하세요.");
return 0;
}
var retVal = checkSpace( str );
if( retVal != "") {
alert("이메일 주소를 빈공간 없이 넣으세요.");
return 0;
}
/* checkFormat */
var isEmail = /[-!#$%&'*+\/^_~{}|0-9a-zA-Z]+(\.[-!#$%&'*+\/^_~{}|0-9a-zA-Z]+)*@[-!#$%&'*+\/^_~{}|0-9a-zA-Z]+(\.[-!#$%&'*+\/^_~{}|0-9a-zA-Z]+)*/;
if( !isEmail.test(str) ) {
alert("이메일 형식이 잘못 되었습니다.");
return 0;
}
if( str.length > 60 ) {
alert("이메일 주소는 60자까지 유효합니다.");
return 0;
}
return 1;
}
# 한글 이름 체크
function validNAME(str)
{
if( str == '' ){
alert("이름을 입력하세요");
return 0;
}
var retVal = checkSpace( str );
if( retVal != ""){
alert("이름은 띄어쓰기 없이 입력하세요.");
return 0;
}
if( !isHangul(str) ) {
alert("이름을 한글로 입력하세요.");
return 0;
}
if( str.length > 7 ) {
alert("이름은 7자까지만 사용할 수 있습니다.");
return 0;
}
return 1;
}
# 영문 이름 체크
function validENAME( str )
{
/* check format */
var isENAME = /^\w/gi;
if( !isENAME.test( str ) )
{
alert("영문이름을 입력하세요");
document.forms[0].ename1.select();
return 0;
}
return 1;
}
function checkSocno1(){ // 주민번호 valid check , 자동 다음 폼 이동
str = upgradeFrm;
num = str.socno1.value;
siz = num.length;
numFlag = Number(num);
if(!numFlag && siz > 1 && num != '00' && num != '000'){
alert('숫자를 넣어주세요');
str.socno1.select();
str.socno1.focus();
return;
}
if(siz == 6){
str.socno2.focus();
return;
}
}
function checkSocno2(){ // 주민번호 valid check , 자동 다음 폼 이동
str = upgradeFrm;
num = str.socno2.value;
siz = num.length;
numFlag = Number(num);
if(!numFlag && siz > 1 && num != '00' && num != '000'){
alert('숫자를 넣어주세요');
str.socno2.select();
str.socno2.focus();
return;
}
if(siz == 1){
if(num < 1 || num > 4){
alert('잘못된 주민번호 형식입니다');
str.socno2.select();
str.socno2.focus();
return;
}
}
}