function selDataChange(form) {
var DataIndex=form.url.selectedIndex;
if (form.url.options[DataIndex].value != null) {
Location=form.url.options[DataIndex].value;
}
}
function selDataChange2(form) {
var DataIndex=form.url2.selectedIndex;
if (form.url2.options[DataIndex].value != null) {
Location=form.url2.options[DataIndex].value;
}
}
/**
* 입력값에 스페이스 이외의 의미있는 값이 있는지 체크
* ex) if (isEmpty(form.keyword)) {
* alert!("검색조건을 입력하세요.");
* }
*/
function isEmpty(input) {
if (input.value == null || input.value.replace(/ /gi,"") ==
"") {
return true;
}
return false;
}
/**
* 입력값에 특정 문자(chars)가 있는지 체크
* 특정 문자를 허용하지 않으려 할 때 사용
* ex) if (containsChars(form.name,"!,*&^%$#@~;")) {
* alert!("이름 필드에는 특수 문자를 사용할 수
없습니다.");
* }
*/
function containsChars(input,chars) {
for (var inx = 0; inx < input.value.length; inx++) {
if (chars.indexOf(input.value.charAt(inx)) != -1)
return true;
}
return false;
}
/**
* 입력값이 특정 문자(chars)만으로 되어있는지 체크
* 특정 문자만 허용하려 할 때 사용
* ex) if (!containsCharsOnly(form.blood,"ABO")) {
* alert!("혈액형 필드에는 A,B,O 문자만 사용할 수
있습니다.");
* }
*/
function containsCharsOnly(input,chars) {
for (var inx = 0; inx < input.value.length; inx++) {
if (chars.indexOf(input.value.charAt(inx)) == -1)
return false;
}
return true;
}
function isStartWith(input,chars) {
for (var inx = 0; inx < chars.length; inx++) {
if (chars.indexOf(input.value.charAt(0)) == -1)
return false;
}
return true;
}
/**
* 입력값이 알파벳인지 체크
* 아래 isAlphabet() 부터 isNumComma()까지의 메소드가
* 자주 쓰이는 경우에는 var chars 변수를
* global 변수로 선언하고 사용하도록 한다.
* ex) var uppercase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
* var lowercase = "abcdefghijklmnopqrstuvwxyz";
* var number = "0123456789";
* function isAlphaNum(input) {
* var chars = uppercase + lowercase + number;
* return containsCharsOnly(input,chars);
* }
*/
function isAlphabet(input) {
var chars =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ";
return containsCharsOnly(input,chars);
}
/**
* 입력값이 알파벳 대문자인지 체크
*/
function isUpperCase(input) {
var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ ";
return containsCharsOnly(input,chars);
}
/**
* 입력값이 알파벳 소문자인지 체크
*/
function isLowerCase(input) {
var chars = "abcdefghijklmnopqrstuvwxyz ";
return containsCharsOnly(input,chars);
}
/**
* 입력값에 숫자만 있는지 체크
*/
function isNumber(input) {
var chars = "0123456789";
return containsCharsOnly(input,chars);
}
/**
* 입력값이 알파벳,숫자로 되어있는지 체크
*/
function isAlphaNum(input) {
var chars =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
";
return containsCharsOnly(input,chars);
}
function isBigAlphaNum(input) {
var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ";
return containsCharsOnly(input,chars);
}
/**
* 입력값이 숫자,대시(-)로 되어있는지 체크
*/
function isNumDash(input) {
var chars = "-0123456789";
return containsCharsOnly(input,chars);
}
/**
* 입력값이 숫자,콤마(,)로 되어있는지 체크
*/
function isNumComma(input) {
var chars = ",0123456789";
return containsCharsOnly(input,chars);
}
/**
* 입력값이 사용자가 정의한 포맷 형식인지 체크
* 자세한 format 형식은 자바스크립트의 'regular expression!'을
참조
*/
function isValidFormat(input,format) {
if (input.value.search(format) != -1) {
return true; //올바른 포맷 형식
}
return false;
}
/**
* 입력값이 이메일 형식인지 체크
* ex) if (!isValidEmail(form.email)) {
* alert!("올바른 이메일 주소가 아닙니다.");
* }
*/
function isValidEmail(input) {
// var format = /^(\S+)@(\S+)\.([A-Za-z]+)$/;
var format = /^((\w|[\-\.])+)@((\w|[\-\.])+)\.([A-Za-z]+)$/;
return isValidFormat(input,format);
}
/**
* 입력값이 전화번호 형식(숫자-숫자-숫자)인지 체크
*/
function isValidPhone(input) {
var format = /^(\d+)-(\d+)-(\d+)$/;
return isValidFormat(input,format);
}
/**
* 입력값의 바이트 길이를 리턴
* ex) if (getByteLength(form.title) > 100) {
* alert!("제목은 한글 50자(영문 100자) 이상 입력할 수
없습니다.");
* }
*/
function getByteLength(input) {
var byteLength = 0;
for (var inx = 0; inx < input.value.length; inx++) {
var oneChar = escape(input.value.charAt(inx));
if ( oneChar.length == 1 ) {
byteLength ++;
} else if (oneChar.indexOf("%u") != -1) {
byteLength += 2;
} else if (oneChar.indexOf("%") != -1) {
byteLength += oneChar.length/3;
}
}
return byteLength;
}
/**
* 선택된 라디오버튼이 있는지 체크
*/
function hasCheckedRadio(input) {
if (input.length > 1) {
for (var inx = 0; inx < input.length; inx++) {
if (input[inx].checked) return true;
}
} else {
if (input.checked) return true;
}
return false;
}
/**
* 선택된 체크박스가 있는지 체크
*/
function hasCheckedBox(input) {
return hasCheckedRadio(input);
}
/**
* 선택된 체크박스가 몇개인지 그 개수를 반환
*/
function hasMultiCheckedRadio(input) {
var kkkk = 0;
if (input.length > 1) {
for (var inx = 0; inx < input.length; inx++) {
if (input[inx].checked) {
kkkk++;
}
}
} else {
if (input.checked) kkkk=1;
}
return kkkk;
}
/**
* 유효한(존재하는) 월(月)인지 체크
*/
function isValidMonth(mm) {
var m = parseInt(mm,10);
return (m >= 1 && m <= 12);
}
/**
* 유효한(존재하는) 일(日)인지 체크
*/
function isValidDay(yyyy, mm, dd) {
var m = parseInt(mm,10) - 1;
var d = parseInt(dd,10);
var end = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
if ((yyyy % 4 == 0 && yyyy % 100 != 0) || yyyy % 400 == 0) {
end[1] = 29;
}
return (d >= 1 && d <= end[m]);
}
/**
* 유효한(존재하는) 시(時)인지 체크
*/
function isValidHour(hh) {
var h = parseInt(hh,10);
return (h >= 1 && h <= 24);
}
/**
* 유효한(존재하는) 분(分)인지 체크
*/
function isValidMin(mi) {
var m = parseInt(mi,10);
return (m >= 1 && m <= 60);
}
/**
* Time 형식인지 체크(느슨한 체크)
*/
function isValidTimeFormat(time) {
return (!isNaN(time) && time.length == 12);
}
/**
* 유효하는(존재하는) Time 인지 체크
* ex) var time = form.time.value; //'200102310000'
* if (!isValidTime(time)) {
* alert!("올바른 날짜가 아닙니다.");
* }
*/
function isValidTime(time) {
var year = time.substring(0,4);
var month = time.substring(4,6);
var day = time.substring(6,8);
var hour = time.substring(8,10);
var min = time.substring(10,12);
/**
* Time 스트링을 자바스크립트 Date 객체로 변환
* parameter time: Time 형식의 String
*/
function toTimeObject(time) { //parseTime(time)
var year = time.substr(0,4);
var month = time.substr(4,2) - 1; // 1월=0,12월=11
var day = time.substr(6,2);
var hour = time.substr(8,2);
var min = time.substr(10,2);
return new Date(year,month,day,hour,min);
}
/**
* 자바스크립트 Date 객체를 Time 스트링으로 변환
* parameter date: JavaScript Date Object
*/
function toTimeString(date) { //formatTime(date)
var year = date.getFullYear();
var month = date.getMonth() + 1; // 1월=0,12월=11이므로 1
더함
var day = date.getDate();
var hour = date.getHours();
var min = date.getMinutes();
if (("" + month).length == 1) { month = "0" + month; }
if (("" + day).length == 1) { day = "0" + day; }
if (("" + hour).length == 1) { hour = "0" + hour; }
if (("" + min).length == 1) { min = "0" + min; }
return ("" + year + month + day + hour + min)
}
/**
* Time이 현재시각 이후(미래)인지 체크
*/
function isFutureTime(time) {
return (toTimeObject(time) > new Date());
}
/**
* Time이 현재시각 이전(과거)인지 체크
*/
function isPastTime(time) {
return (toTimeObject(time) < new Date());
}
/**
* 주어진 Time 과 y년 m월 d일 h시 차이나는 Time을 리턴
* ex) var time = form.time.value; //'20000101000'
* alert!(shiftTime(time,0,0,-100,0));
* => 2000/01/01 00:00 으로부터 100일 전 Time
*/
function shiftTime(time,y,m,d,h) { //moveTime(time,y,m,d,h)
var date = toTimeObject(time);
/**
* 두 Time이 며칠 차이나는지 구함
* time1이 time2보다 크면(미래면) minus(-)
*/
function getDayInterval(time1,time2) {
var date1 = toTimeObject(time1);
var date2 = toTimeObject(time2);
var day = 1000 * 3600 * 24; //24시간
return parseInt((date2 - date1) / day, 10);
}
/**
* 두 Time이 몇 시간 차이나는지 구함
* time1이 time2보다 크면(미래면) minus(-)
*/
function getHourInterval(time1,time2) {
var date1 = toTimeObject(time1);
var date2 = toTimeObject(time2);
var hour = 1000 * 3600; //1시간
return parseInt((date2 - date1) / hour, 10);
}
/**
* 현재 시각을 Time 형식으로 리턴
*/
function getCurrentTime() {
return toTimeString(new Date());
}
/**
* 현재 시각과 y년 m월 d일 h시 차이나는 Time을 리턴
*/
function getRelativeTime(y,m,d,h) {
return shiftTime(getCurrentTime(),y,m,d,h);
}
/**
* 현재 年을 YYYY형식으로 리턴
*/
function getYear() {
return getCurrentTime().substr(0,4);
}
/**
* 현재 月을 MM형식으로 리턴
*/
function getMonth() {
return getCurrentTime().substr(4,2);
}
/**
* 현재 日을 DD형식으로 리턴
*/
function getDay() {
return getCurrentTime().substr(6,2);
}
/**
* 현재 時를 HH형식으로 리턴
*/
function getHour() {
return getCurrentTime().substr(8,2);
}
/**
* 오늘이 무슨 요일이야?
* ex) alert!('오늘은 ' + getDayOfWeek() + '요일입니다.');
*/
function getDayOfWeek() {
var now = new Date();
var day = now.getDay(); //일요일=0,월요일=1,...,토요일=6
var week = new Array('일','월','화','수','목','금','토');
return week[day];
}
/**
* 특정날짜의 요일을 구한다.
*/
function getDayOfWeek(time) {
var now = toTimeObject(time);
var day = now.getDay(); //일요일=0,월요일=1,...,토요일=6
var week = new Array('일','월','화','수','목','금','토');
return week[day];
}
/**
* 문자열의 오른쪽 끝에서 부터 지정된 개수만큼의 문자들을
리턴한다.
*/
function substrInverse(str, num)
{
var len;
len = str.length;
return str.substr(len - num, num);
}
/**
* 문자열로의 특정위치로부터 지정된 개수의 문자들을 리턴한다.
*/
function substrMid(str, idx, num)
{
return str.substr( idx-1, num);
}
// Left 빈자리 만큼 padStr 을 붙인다.
function lpad(src, len, padStr){
var retStr = "";
var padCnt = Number(len) - String(src).length;
for(var i=0;i<padCnt;i++) retStr += String(padStr);
return retStr+src;
}
// Right 빈자리 만큼 padStr 을 붙인다.
function rpad(src, len, padStr){
var retStr = "";
var padCnt = Number(len) - String(src).length;
for(var i=0;i<padCnt;i++) retStr += String(padStr);
return src+retStr;
}
// 전화번호 국번검증
function isValidDDDPhoneNum(dddphonenum)
{
// 널인가?
if (isEmpty(dddphonenum)) {
return null;
}
for(var idx=0;idx < str.length;idx++){
var c = escape(str.charAt(idx));
if ( c.indexOf("%u") == -1 ) {
return false;
}
}
return true;
}
// 실제길이 반환( 한글 2byte 계산 )
function getByteLength(s){
var len = 0;
if ( s == null ) return 0;
for(var i=0;i<s.length;i++){
var c = escape(s.charAt(i));
if ( c.length == 1 ) len ++;
else if ( c.indexOf("%u") != -1 ) len += 2;
else if ( c.indexOf("%") != -1 ) len += c.length/3;
}
return len;
}