[JS]자바스크립트 에러를 잡는 스크립트

자바스크립트 에러날때 스크립트에 아래를 추가해보세요..

에러가 잡힙니다.

엑세스가 거부되었다는 에러도 잡히네요..^^

/*******error 처리위한 스크립트 시작 ***************/
window.onerror = ErrorSetting

var e_msg="";
var e_file="";
var e_line="";


function ErrorSetting(msg, file_loc, line_no) {
e_msg=msg;
e_file=file_loc;
e_line=line_no;
return true;
}


/*******error 처리위한 스크립트 끝 ***************/

날짜와 시간 체크 하기위해서 여러가지 방법이 있겠지만

몇개 사이트를 하면서 정리된 코드를 올려본다

날짜 입력방식

1) "[4자리 년][2자리 월][2자리 일]"

2) "[년]-[월]-[일]"

위 두가지 방식중 하나

시간 입력방식

1)"[2자리 시][2자리 분]"

2)"[시]:[분]"

위 두가지 방식중 하나

위와 같이 형식으로 날짜, 시간이 입력되었을 경우 isDate, isTime 함수를 이용하여 날짜, 시간 여부를 확인 할 수 있다

또한 위와 같은 형식에서 DB에 입력할 때 날짜 1번, 시간 1번 방식으로만 입력되어야 할 경우 changeSimpleDate, changeSimpleTime 을 이용하여 변환할 수 있다

-----------------------------------------------------------

// 날짜값 입력값으로 유효한지 확인

function isDateNumber(val)
{
var comp="1234567890-";
var len=val.length;
for(i=0;i<len;i++)
{
if(comp.indexOf(val.substring(i,i+1).toUpperCase()) < 0 ) {
return false;
}
}
return true;
}

// 날짜 여부 확인

function isDate(val) {
var ret = false;
var year, month, day;
var thisMonth, nextMonth, maxDay;

year = month = day = 0;
if (isNumber(val) && val.length == 8) {
year= DecimalNumber(val.substring(0, 4));
month= DecimalNumber(val.substring(4, 6));
day= DecimalNumber(val.substring(6));
}
else if (isDateNumber(val) && val.split("-").length == 3) {
year= DecimalNumber(val.split("-")[0]);
month= DecimalNumber(val.split("-")[1]);
day= DecimalNumber(val.split("-")[2]);
}

if (year >= 1900 && (month >= 1 || month <=12)) {
thisMonth= new Date(year, month-1, 1);
nextMonth= new Date(year, month, 1);

maxDay= (nextMonth - thisMonth) / 1000 / 60 / 60 / 24;

if (day >= 1 && day <= maxDay)
ret = true;
}

return ret;
}

// 시간 여부 확인

function isTime(val) {
var ret = false;
var nHour, nMinute, nSecond;

nHour = nMinute = nSecond = -1;
if (isStringCustom(val, "1234567890:") && val.split(":").length >= 2) {
nHour= DecimalNumber(val.split(":")[0]);
nMinute= DecimalNumber(val.split(":")[1]);

nSecond= 0;
if (val.split(":").length >= 3)
nSecond= DecimalNumber(val.split(":")[2]);
}
else if (isNumber(val) && (val.length == 4 || val.length == 6)) {
nHour= DecimalNumber(val.substring(0, 2));
nMinute= DecimalNumber(val.substring(2, 4));

nSecond= 0;
if (val.length == 6)
nSecond= DecimalNumber(val.substring(4));
}

if (nHour >= 0 && nHour <= 23 && nMinute >= 0 && nMinute <= 59 && nSecond >= 0 && nSecond <= 59) {
ret = true;
}

return ret;
}

// 문자열을 날짜형으로 바꾸기

function getStrToDate(val) {
var ret = null;
var year, month, day;
var thisMonth, nextMonth, maxDay;

year = month = day = 0;
if (isNumber(val) && val.length == 8) {
year= DecimalNumber(val.substring(0, 4));
month= DecimalNumber(val.substring(4, 6));
day= DecimalNumber(val.substring(6));
}
else if (isDateNumber(val) && val.split("-").length == 3) {
year= DecimalNumber(val.split("-")[0]);
month= DecimalNumber(val.split("-")[1]);
day= DecimalNumber(val.split("-")[2]);
}

ret = new Date(year, month-1, day);

return ret;
}

// 문자열 숫자로 바꾸기

function DecimalNumber(val) {
var i;
var find = true;

while (find) {
if (val.charAt(0) != "0") {
find = false;
break;
}

if (val.length > 1)
val = val.substring(1);
else break;
}

return parseInt(val);
}


// 간단한 날짜형으로 바꾸기 (예 : 2008-01-01 => 20080101)

function changeSimpleDate(value) {
var arr = value.split("-");
var ret = "";

if (trim(value) == "") return value;
if (arr.length <= 0) {
ret = value;
}
else {
ret = ("0000" + arr[0]).substring(arr[0].length);
ret += ("00" + arr[1]).substring(arr[1].length);
ret += ("00" + arr[2]).substring(arr[2].length);
}

return ret;
}

// 간단한 시간형으로 바꾸기 (예 : 01:00 => 0100)

function changeSimpleTime(value) {
var arr = value.split(":");
var ret = "";

if (trim(value) == "") return value;
if (arr.length <= 0) {
ret = value;
}
else {
ret = ("00" + arr[0]).substring(arr[0].length);
ret += ("00" + arr[1]).substring(arr[1].length);
}

return ret;
}

Posted by 퓨전마법사
,