[JS]자바스크립트 에러를 잡는 스크립트 |
자바스크립트 에러날때 스크립트에 아래를 추가해보세요.. 에러가 잡힙니다. 엑세스가 거부되었다는 에러도 잡히네요..^^ /*******error 처리위한 스크립트 시작 ***************/ var e_msg="";
|
날짜와 시간 체크 하기위해서 여러가지 방법이 있겠지만
몇개 사이트를 하면서 정리된 코드를 올려본다
날짜 입력방식
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;
}
'JavaScript' 카테고리의 다른 글
DIV를 사용하여 특정부분 인쇄하기 (0) | 2007.01.22 |
---|---|
자바스크립트 새롭게 호출하는 법 (0) | 2006.06.23 |
HTML에 JavaScript 삽입 (0) | 2006.06.23 |
javascript 문자열 처리 함수 정리 | JavaVBScript 2004/11/05 16:23 (0) | 2006.06.23 |
입력상자 한글/영문 설정하기[style="ime-mode:active"] (0) | 2006.06.23 |