* 입력값이 숫자인지를 확인한다. (' '까지 괜찮음)
* param : sVal 입력스트링
* return : Boolean True이면 숫자값
function isNumberSpace(sVal)
* sVal 값이 숫자인지를 확인한다.('.'까지 괜찮음)
* param : sVal 입력스트링
* return : Boolean True이면 숫자값
function isNumberSpace(sVal)
* 입력값의 앞에 정해진 자리수만큼 0을 채운다.
* param : sVal 입력스트링, iSize
* return : String
function fillZero(sVal, iSize)
* 길이가1인 경우 앞에 "0"을 붙인다.
* param : sVal 입력스트링
* return : String "0"값을 포함하는 값
function addZero(sVal)
* 날짜 여부를 확인한다.(월일 or 년월 or 년월일)
* param : sYmd 입력스트링(MMDD or YYYYMM or YYYYMMDD)
* return : Boolean true이면 날짜 범위임
* 수정 : 월이나 일에 00 입력시 스크립트 에러. trimZero 부분을 function isDate(sYmd)
* 날짜 여부를 확인한다.(년월일)
* param : sYmd 입력스트링(YYYYMMDD)
* return : Boolean true이면 날짜 범위임
function isDateYMD(sYmd)
* 날짜 여부를 확인한다.(월일)
* param : sMD 입력스트링(MMDD)
* return : Boolean true이면 날짜 범위임
function isDateMD(sMD)
* 날짜 여부를 확인한다.(년월)
* param : sYM 입력스트링(YYYYMM)
* return : Boolean true이면 날짜 범위임
function isDateYM(sYM)
* 년월을 입력받아 마지막 일를 반환한다(년월)
* param : sYM 입력스트링(YYYYMM)
* return : String 해당월의 마지막날
function lastDay(sYM)
* 대소문자를 포함한 영문자인지 확인한다.
* param : sVal 입력문자열
* return : Boolean true이면 알파벳
function isAlpha(sVal)
* 영문자와 숫자 구성된 문자열인지 확인
* param : sVal 입력문자열
* return : Boolean true이면 영문자,숫자로 구성된 문자열
function isAlphaNumeric(sVal)
* 문자열의 길이를 return (한글:2자)
* param : sVal 입력문자열
* return : int 입력문자열의 길이
function strLength(sVal)
* 문자열 길이 체크
* param : str 필드객체, field 필드명
* return : boolean
function chkStrLength(str,field)
* 한글이지 여부 체크
* param : sVal 입력문자열
* return : Boolean true이면 한글
function isHangul(sVal)
* 입력받은 날짜로부터 몇일 후의 날짜를 반환하기
* param : ObjDate객체, 일수, 결과Data객체
* return :
function calcDate(objDate,iDay,objResultDate)
* 숫자 0으로 초기화 된 1차원 배열을 생성한다.
* param : iSize 배열 크기
* return : this 배열
function makeArray(iSize)
* 숫자 분리자(,)(.)가 있는 숫자이거나 일반숫자형태인지 검사한다.
* param : sVal
* return : Boolean
function isMoneyNumber(sVal)
* 숫자 분리자(,)만 있는 숫자이거나 일반숫자형태인지 검사한다.
* param : sVal
* return : Boolean
function isMoneyNumber2(sVal)
* 숫자 분리자(.)만 있는 숫자이거나 일반숫자형태인지 검사한다.
* param : sVal
* return : Boolean
function isMoneyNumber3(sVal)
* 숫자 분리자(.)만 있는 숫자인지 검사한다.
* param : sVal
* return : Boolean
function isMoneyNumber4(sVal){
* 소수점이 있는 숫자이면서 정해진 자릿수에 맞는 형식인지 확인다.
* param : sVal 입력객체, iSize1 정수자릿수, iSize2 소수자릿수
* return : boolean
function isMoneyNumber5(sVal, iSize1, iSize2)
* 소수점 숫자표현(소수점 위의 3자리마다 "," 맞춤)
* param : val
* return : String
function getMoneyType(val)
* 부호가 있는 소수점 숫자표현(소수점 위의 3자리마다 "," 맞춤)
* param : val
* return : String
function getSignMoneyType(val)
* 콤마를 제거한 숫자형태 문자열로 반환(부호와 소수점도 없앰)
* param : val
* return : String
function getOnlyNumber(val)
* 콤마를 제거한 숫자형태 문자열로 반환(부호, 소수점 그대로)
* param : val
* return : String
function getOnlyNumberDot(val)
* 콤마를 제거한 부호가 있는 숫자형태 문자열로 반환
* param : val
* return : String
function getOnlySignNumber(val)
* 앞뒤 공백을 제거한다.
* param : sVal
* return : String
function Trim(sVal)
* 앞 공백을 제거한다.
* param : sVal
* return : String
function LTrim(sVal)
* 뒤 공백을 제거한다.
* param : sVal
* return : String
function RTrim(sVal)
// DESCRIPTION : 공백문자 제거
// 함수명 : MTrim(공백이 있는 문자열)
// Return Value : 공백이 제거된 문자열
function MTrim(sVal){
* 공백만 존재하거나 아무것도 없는지 확인한다.
* param : sVal
* return : boolean (true이면 공백이나 Empty이다)
function isEmpty(sVal){
* 현재 컨트롤과 MaxLength 받아서 MaxLength 되면
다음 컨트롤로 이동
* param : objCurrent, objNext
* return :
function focusMove(objCurrent, objNext)
* 현재 컨트롤과 MaxLength 받아서 MaxLength 되면
다음 컨트롤로 이동(선택)
* param : objCurrent, objNext
* return :
function focusMoveSelect(objCurrent, objNext)
* 완료된 날짜값에 대해 "/" 추가
* param : me(value)
* return : String
function calOnMask(me){
* 날짜값 "/" 제거
* param : me(value)
* return : String "/" 제거된 날짜값
function calOffMask(me){
* 날짜값 자동 "/" 붙임.(완성된 날짜값에 대해 /붙임)
* param :
* return :
function cal_value2(me){
* 오늘 날짜 생성 ( "/" 붙여서 리턴)
* param :
* return : todate
function todate() {
Spec : 숫자입력시 3자리마다 자동으로 콤마 찍기
Argument : string
Return : string
Example : onkeyup="comma_value(this)"
function comma_value(sval)
Spec : 숫자입력시 3자리마다 자동으로 콤마 찍기
Argument : string
Return : string
Example : onkeyup="comma_value(str)"
function formatNumbertoString(cur)
// 숫자만 입력 (소수점 허용, 음수 허용)
// 사용법 : onKeyPress = onlyNum();
function onlyNum()
// 숫자만 입력 (소수점 허용, 음수 불가)
// 사용법 : onKeyPress = onlyNum2();
function onlyNum2()
// 숫자만 입력 (소수점 불가, 음수 허용)
// 사용법 : onKeyPress = onlyNum3();
function onlyNum3()
// 숫자만 입력 (소수점 불가, 음수 불가)
// 사용법 : onKeyPress = onlyNum4();
function onlyNum4()
* 입력완료된 숫자값에 대하여 콤마를 찍어줄때 사용
(소수점 이하 처리 안됨)
* 콤마 형식을 사용할 경우에는 onkeyup이벤트로 사용하기 바라며,
* 다음의 펑션을 호출할때는 comma_value(me) 펑션을 호출하기 바람.
* param : value
function numOnMask(me){
* 콤마가 들어간 숫자에서 ","를 뺀다.
* param : value
function numOffMask(me){
// 입력 완료된 숫자 값에 컴마를 적용하여준다
(소수점 이하는 "," 안 붙음)
// return : String
function numOnMask2(me){
// 입력 완료된 숫자 값에 컴마를 적용하고 소수점 이하는 삭제한다
// return : String
function numOnMask3(me){ //단순히 값에 컴마를 적용할때 사용
* 입력값을 소수점 이하 몇 자리까지 보여줄지 정한다.
* 소수점 이하 자리수가 입력된 값보다 작으면 0으로 채운다.
* param : sVal 입력스트링, iSize 소수자릿수
* return : String
function numOnMask4(sVal,iSize)
* 입력값에 마스킹을 적용한다.
(소수점 이하와 부호를 삭제하고 콤마추가)
* param : sVal 입력스트링
* return : String
function numOnMask5(sVal)
* 입력값에 마스킹을 적용한다.
(부호를 삭제하고 콤마추가. 소수점은 그대로 둠)
* param : sVal 입력스트링
* return : String
function numOnMask6(sVal)
* 숫자 외의 값이 입력되어있으면 false 리턴
* param : sval (object)
* return :
function onlyNumber(sval) {
* 특수문자 값이 입력되었는지 체크(특수문자가 있으면 false 리턴)
* param : sval (object)
* return :
function chkValidChar(sval) {
*
* 윈도우 오픈1 (사용자 지정 위치생성)
* param : wUrl 지정url
* param : wTitle 지정타이틀
* param : wTop 지정 창 높이정렬기준
* param : wLeft 지정 창 왼쪽정렬기준
* param : wWidth 창넓이
* param : wHeight 창높이
* param : wSco 스크롤바 생성유무, 1:생성 0:비생성
function win_open(wUrl,wTitle,wTop,wLeft,wWidth,wHeight,wSco)
*
* 윈도우 오픈2 (무조건 가운데 생성)
* param : wUrl 지정url
* param : wTitle 지정타이틀
* param : wWidth 창넓이
* param : wHeight 창높이
* param : wSco 스크롤바 생성유무, 1:생성 0:비생성
function win_open2(wUrl,wTitle,wWidth,wHeight,wSco)
*
* 윈도우 오픈3 (무조건 전체 생성)
* param : wUrl 지정url
* param : wTitle 지정타이틀
* param : wWidth 창넓이
* param : wHeight 창높이
* param : wSco 스크롤바 생성유무, 1:생성 0:비생성
function win_open3(wUrl,wTitle)
/**
* 두 날짜에 며칠 차이나는지 구함
* from_val이 to_val보다 크면 -붙여서 리턴
*/
function getDayInterval(from_val,to_val)
/**
===============================================================================
주 시 스 템 : 공통 개발
서브 시스템 : 없음
프로그램 ID : JCommon.js
프로그램 명 : 공통 기능 Javascript
프로그램개요 : 공통적으로 사용되는 Javascript를 정의한다
작 성 자 : 유명현, 최선재
작 성 일 : 2002.04.04
마지막 수정일 : 2003.11.30
===============================================================================
/* 오른쪽 마우스 금지 및 Ctrl key 금지 ======================================*/
document.onkeydown=cntrcheck;
document.onmousedown=Right;
var tabKeyon = "N";
if (document.layers) {
window.captureEvents(Event.MOUSEDOWN);
window.onmousedown=Right;
}
function Right(e) {
// start_timer();
//if (navigator.appName == 'Netscape' && (e.which == 3 || e.which == 2))
// return false;
//else if (navigator.appName == 'Microsoft Internet Explorer' && (event.button == 2 || event.button == 3)) {
// alert!("오른쪽 마우스는 사용하실수 없습니다.");
// return false;
//}
//return true;
}
function cntrcheck() {
// start_timer();
var keyValue = event.keyCode;
/*ctrl 키 제어*/
//if (keyValue == '17')
//{
// alert!("ctrl 키는 쓰실수 없습니다.");
//}
/*F11 제어*/
if (keyValue == '122')
{
alert!("F11키는 사용할수 없습니다");
event.keyCode=38;
}
/*F5 제어*/
//if (keyValue == '116')
//{
//alert!("F5키는 사용할수 없습니다");
//event.keyCode=38;
//}
/*BackSpace 제어*/
//if (keyValue == '8')
//{
// alert!("BackSpace는 사용할수 없습니다");
// event.keyCode=38;
//}
/* tabKey 제어*/
if (keyValue == '9')
{
tabKeyon = "Y";
}
}
/* 금지 태그 end=================================== */
/*=============================================================================*
* 입력값이 숫자인지를 확인한다
* param : sVal 입력스트링
* return : Boolean True이면 숫자값
*============================================================================*/
function isNumber(sVal)
{
if(sVal.length < 1)
{
return false;
}
for(i=0; i<sVal.length; i++)
{
iBit = parseInt(sVal.substring(i,i+1)); //문자(Char)를 숫자로 변경
if(('0' < iBit) || ('9' > iBit))
{
//alert!(i+':'+iBit+':'+'Mun');
}
else
{
return false;
}
}
return true;
}
/*=============================================================================*
* 입력값이 숫자인지를 확인한다. (' '까지 괜찮음)
* param : sVal 입력스트링
* return : Boolean True이면 숫자값
*============================================================================*/
function isNumberSpace(sVal)
{
if(sVal.length < 1)
{
return false;
}
for(var i=0;i<sVal.length;i++)
{
sBitData = sVal.substring(i,i+1); //문자열의 문자(char)를 넣는다
if(sBitData == ' ')
{
}
else
{
iBit = parseInt(sVal.substring(i,i+1)); //문자(char)를 숫자로
if(('0' < iBit) || ('9' > iBit) || (' ' == sBitData))
{
}
else
{
return false;
}
}
}
return true;
}
/*=============================================================================*
* sVal 값이 숫자인지를 확인한다.('.'까지 괜찮음)
*
* param : sVal 입력스트링
*
* return : Boolean True이면 숫자값
*============================================================================*/
function isNumberDot(sVal)
{
if (sVal.length < 1) {
return false;
}
var result=0;
var position=0;
var bMinus;
//마이너스 부호의 갯수를 카운트하여 올바른지 확인
for(position=0; position<sVal.length; position++)
{
if( getAt(sVal, position) == '-' )
{
result += 1;
}
}
if(result > 1)
return false;
result = 0;
//소수점의 갯수를 카운트하여 올바른지 확인
for(position=0; position<sVal.length; position++)
{
if( getAt(sVal, position) == '.' )
{
result += 1;
}
}
if(result > 1)
return false;
//마이너스 부호를 가지고 있는지 확인. 있다면 부호는 빼낸다.
if(sVal.substr(0,1) == '-')
{
bMinus = true;
sVal = sVal.substring(1, sVal.length);
}
//맨앞에 소수점이 있거나 맨 뒤에 있을 경우 0 을 추가해 줌.
if(sVal.substring(0,1) == '.')
sVal = '0' + sVal;
else if(sVal.substring(sVal.length-1,sVal.length) == '.')
sVal = sVal + '0';
//검사.
for(var position=0; position<sVal.length; position++)
{
if( (getAt(sVal, position) < '0' || getAt(sVal, position) >'9') && getAt(sVal,position) != '.' )
return false;
}
return true;
}
function getAt(sVal, position)
{
return sVal.substring(position, position+1)
}
/*=============================================================================*
* 앞자리의 연속된 Zero 값을 자른다.
* param : sVal 입력스트링
* return : String Zero값을 자른 값
*============================================================================*/
function trimZero(sVal)
{
var i;
i = 0;
while (sVal.substring(i,i+1) == '0')
{
i++;
}
return sVal.substring(i);
}
/*=============================================================================*
* 입력값의 앞에 정해진 자리수만큼 0을 채운다.
* param : sVal 입력스트링, iSize
* return : String
*============================================================================*/
function fillZero(sVal, iSize)
{
while(sVal.length < iSize)
{
sVal = "0" + sVal;
}
return sVal;
}
/*=============================================================================*
* 길이가1인 경우 앞에 "0"을 붙인다.
*
* param : sVal 입력스트링
*
* return : String "0"값을 포함하는 값
*============================================================================*/
function addZero(sVal)
{
var iLen = sVal.length; //인수값의 길이를 구한다.
if(iLen == 1)
{
sVal = "0"+sVal;
}
else if(iLen == 0)
{
return;
}
return sVal;
}
/*=============================================================================*
* 날짜 여부를 확인한다.(월일 or 년월 or 년월일)
*
* param : sYmd 입력스트링(MMDD or YYYYMM or YYYYMMDD)
*
* return : Boolean true이면 날짜 범위임
*
* 수정 : 월이나 일에 00 입력시 스크립트 에러. trimZero 부분을 수정(2003/11/19)
*============================================================================*/
function isDate(sYmd)
{
var bResult; // 결과값을 담는 변수(Boolean)
switch (sYmd.length)
{
case 4://월일
bResult = isDateMD(sYmd);
break;
case 6://년월
bResult = isDateYM(sYmd);
break;
case 8://년월일
bResult = isDateYMD(sYmd);
break;
default:
bResult = false; // 날짜 값이 아님
break;
}
return bResult;
}
/*=============================================================================*
* 날짜 여부를 확인한다.(년월일)
*
* param : sYmd 입력스트링(YYYYMMDD)
*
* return : Boolean true이면 날짜 범위임
*============================================================================*/
function isDateYMD(sYmd)
{
// 길이 확인 //@@ 12.5 순서 변경
if(sYmd.length != 8)
{
alert!('일자를 모두 입력하십시오');
return false;
}
// 숫자 확인
if(!isNumber(sYmd))
{
alert!('날짜는 숫자만 입력하십시오');
return false;
}
var iYear = parseInt(sYmd.substring(0,4),10); // 년도 입력(YYYY)
var iMonth = parseInt(sYmd.substring(4,6),10); //월입력(MM)
var iDay = parseInt(sYmd.substring(6,8),10); //일자입력(DD)
if((iMonth < 1) ||(iMonth >12))
{
alert!(iMonth+'월의 입력이 잘못 되었습니다.');
return false;
}
//각 달의 총 날수를 구한다
var iLastDay = lastDay(sYmd.substring(0,6)); // 해당월의 마지말날 계산
if((iDay < 1) || (iDay > iLastDay))
{
alert!(iMonth+'월의 일자는 1 - '+ iLastDay +'까지입니다.');
return false;
}
return true;
}
/*=============================================================================*
* 날짜 여부를 확인한다.(월일)
*
* param : sMD 입력스트링(MMDD)
*
* return : Boolean true이면 날짜 범위임
*============================================================================*/
function isDateMD(sMD)
{
// 숫자 확인
if(!isNumber(sMD))
{
alert!('숫자만 입력하십시오');
return false;
}
// 길이 확인
if(sMD.length != 4)
{
alert!('일자를 모두 입력하십시오');
return false;
}
var iMonth = parseInt(sMD.substring(0,2),10); //해당월을 숫자값으로
var iDay = parseInt(sMD.substring(2,4),10); //해당일을 숫자값으로
if((iMonth < 1) ||(iMonth >12))
{
alert!(iMonth+'월의 입력이 잘못 되었습니다.');
return false;
}
//각 달의 총 날수를 구한다
if (iMonth < 8 )
{
var iLastDay = 30 + (iMonth%2);
}
else
{
var iLastDay = 31 - (iMonth%2);
}
if (iMonth == 2)
{
iLastDay = 29;
}
if((iDay < 1) || (iDay > iLastDay))
{
alert!(iMonth+'월의 일자는 1 - '+iLastDay+'까지입니다.');
return false;
}
return true;
}
/*=============================================================================*
* 날짜 여부를 확인한다.(년월)
*
* param : sYM 입력스트링(YYYYMM)
*
* return : Boolean true이면 날짜 범위임
*============================================================================*/
function isDateYM(sYM)
{
// 숫자 확인
if(!isNumber(sYM))
{
alert!('날짜는 숫자만 입력하십시오');
return false;
}
// 길이 확인
if(sYM.length != 6)
{
alert!('일자를 모두 입력하십시오');
return false;
}
var iYear = parseInt(sYM.substring(0,4),10); //년도값을 숫자로
var iMonth = parseInt(sYM.substring(4,6),10); //월을 숫자로
if((iMonth < 1) ||(iMonth >12))
{
alert!(iMonth+'월의 입력이 잘못 되었습니다.');
return false;
}
return true;
}
/*=============================================================================*
* 년월을 입력받아 마지막 일를 반환한다(년월)
*
* param : sYM 입력스트링(YYYYMM)
*
* return : String 해당월의 마지막날
*============================================================================*/
function lastDay(sYM)
{
if(sYM.length != 6)
{
alert!("정확한 년월을 입력하십시오.");
return;
}
if(!isDateYM(sYM))
{
return;
}
daysArray = new makeArray(12); // 배열을 생성한다.
for (i=1; i<8; i++)
{
daysArray[i] = 30 + (i%2);
}
for (i=8; i<13; i++)
{
daysArray[i] = 31 - (i%2);
}
var sYear = sYM.substring(0, 4) * 1;
var sMonth = sYM.substring(4, 6) * 1;
if (((sYear % 4 == 0) && (sYear % 100 != 0)) || (sYear % 400 == 0))
{
daysArray[2] = 29;
}
else
{
daysArray[2] = 28;
}
return daysArray[sMonth].toString();
}
/*=============================================================================*
* 대소문자를 포함한 영문자인지 확인한다.
*
* param : sVal 입력문자열
*
* return : Boolean true이면 알파벳
*============================================================================*/
function isAlpha(sVal)
{
// Alphabet 값
var sAlphabet="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
var iLen=sVal.length; //입력값의 길이
for(i=0;i<iLen;i++)
{
if(sAlphabet.indexOf(sVal.substring(i,i+1))<0)
{
alert!("허용된 문자가 아닙니다.\n영문으로 입력해 주십시오.");
return false;
}
}
return true;
}
/*=============================================================================*
* 영문자와 숫자 구성된 문자열인지 확인
*
* param : sVal 입력문자열
*
* return : Boolean true이면 영문자,숫자로 구성된 문자열
*============================================================================*/
function isAlphaNumeric(sVal)
{
var sAlphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
var iLen = sVal.length;
for ( i = 0; i < iLen; i++ )
{
if ( sAlphabet.indexOf(sVal.substring(i, i+1)) < 0 )
{
return false;
}
}
return true;
}
/*=============================================================================*
* 문자열의 길이를 return (한글:2자)
*
* param : sVal 입력문자열
*
* return : int 입력문자열의 길이
*============================================================================*/
function strLength(sVal)
{
var sBit = ''; // 문자열의 문자(Char)
var iLen = 0; //문자열 길이
for ( i = 0 ; i < sVal.length ; i++ )
{
sBit = sVal.charAt(i);
if ( escape( sBit ).length > 4 )
{
iLen = iLen + 2;
}
else
{
iLen = iLen + 1;
}
}
return iLen;
}
/*=============================================================================*
* 문자열 길이 체크
* param : str 필드객체, field 필드명
* return : boolean
*============================================================================*/
function chkStrLength(str,field)
{
iSize = str.getAttribute("Maxlength")
if (field == null)
field = '';
if ( strLength(str.value) > iSize)
{
// if (flag=1)
alert!("입력가능한 "+field+" 최대길이는 영문/숫자일 때 "+iSize+"자, 한글일 때 "+Math.floor(iSize/2)+"자입니다.");
// else
// alert!(field+" 최대길이는 "+iSize+"자 입니다.");
str.select();
str.focus();
return false;
}
return true;
}
/*=============================================================================*
* 한글이지 여부 체크
*
* param : sVal 입력문자열
*
* return : Boolean true이면 한글
*============================================================================*/
function isHangul(sVal)
{
var sBit = '';
for(i=0;i<sVal.length;i++)
{
sBit = sVal.charAt(i);
if(escape( sBit ).length <= 4)
{
alert!("한글만 입력하십시오.");
return false;
}
}
return true;
}
/*=============================================================================*
* 주민등록 여부를 확인한다.(내국인)
*
* param : sID 입력문자열(주민번호 13자리)
*
* return : Boolean true이면 적합한 주민번호
*============================================================================*/
function isSocialNO(ssn)
{
var digit=0
for (var i=0 ; i<ssn.length ; i++){
var str_dig=ssn.substring(i,i+1);
if (str_dig<'0' || str_dig>'9'){
digit=digit+1
}
}
if(digit>0)
{
return false;
}
var year = parseInt(ssn.substring(0,2));
var month = parseInt(ssn.substring(3,4));
var day = parseInt(ssn.substring(5,6));
var gender = parseInt(ssn.substring(7,7));
var local = parseInt(ssn.substring(8,11));
var key = parseInt(ssn.substring(12));
if( (month<0) || (month>12) )
{
return false;
}
if( (month==1) || (month==3) || (month==5) || (month==7) || (month==8) || (month==10) || (month==12) )
{
if( (day<0) || (day>31) )
{
return false;
}
}
if( (month==4) || (month==6) || (month==9) || (month==10) )
{
if( (day<0) || (day>30) )
{
return false;
}
}
if(month==2)
{
if( (year==0) && ( (gender==1) || (gender==2) ) )
{
if( (day<0) || (day>28) )
{
return false;
}
}
else if( (year==0) && ( (gender==3) || (gender==4) ) )
{
if( (day<0) || (day>29) )
{
return false;
}
}
else if(year%4==0)
{
if( (day<0) || (day>29) )
{
return false;
}
}
else
{
if( (day<0) || (day>28) )
{
return false;
}
}
}
if( (gender<0) || (gender>4) )
{
return false;
}
cBit = 0;
sCode="234567892345";
for(i=0;i<12;i++)
{
cBit = cBit+parseInt(ssn.substring(i,i+1))*parseInt(sCode.substring(i,i+1));
}
cBit=11-(cBit%11);
cBit=cBit%10;
if(key!=cBit)
{
return false;
}
else
{
return true;
}
}
/*=============================================================================*
* 주민등록 여부를 확인한다.(외국인)
*
* param : sID 입력문자열(주민번호 13자리)
*
* return : Boolean true이면 적합한 주민번호
*============================================================================*/
function isFgnSocialNO(ssn) {
if ((ssn.charAt(6) == "5") || (ssn.charAt(6) == "6"))
{
birthYear = "19";
}
else if ((ssn.charAt(6) == "7") || (ssn.charAt(6) == "8"))
{
birthYear = "20";
}
else if ((ssn.charAt(6) == "9") || (ssn.charAt(6) == "0"))
{
birthYear = "18";
}
else
{
return false;
}
birthYear += ssn.substr(0, 2);
birthMonth = ssn.substr(2, 2) - 1;
birthDate = ssn.substr(4, 2);
birth = new Date(birthYear, birthMonth, birthDate);
if ( birth.getYear() % 100 != ssn.substr(0, 2) ||
birth.getMonth() != birthMonth ||
birth.getDate() != birthDate) {
return false;
}
var sum = 0;
var odd = 0;
buf = new Array(13);
for (i = 0; i < 13; i++) buf[i] = parseInt(ssn.charAt(i));
odd = buf[7]*10 + buf[8];
if (odd%2 != 0) {
return false;
}
if ((buf[11] != 6)&&(buf[11] != 7)&&(buf[11] != 8)&&(buf[11] != 9)) {
return false;
}
multipliers = [2,3,4,5,6,7,8,9,2,3,4,5];
for (i = 0, sum = 0; i < 12; i++) sum += (buf[i] *= multipliers[i]);
sum=11-(sum%11);
if (sum>=10) sum-=10;
sum += 2;
if (sum>=10) sum-=10;
if ( sum != buf[12]) {
return false;
}
else {
return true;
}
}
/*=============================================================================*
* 입력받은 날짜로부터 몇일 후의 날짜를 반환하기
*
* param : ObjDate객체, 일수, 결과Data객체
*
* return :
*============================================================================*/
function calcDate(objDate,iDay,objResultDate)
{
daysArray = new makeArray(12); //월별 공간을 생성
for(i=1; i<13; i++)
{
daysArray[i] = 30 + (i%2);
}
var sYear = objDate.value.substring(0, 4) * 1;
var sMonth = objDate.value.substring(4, 6) * 1;
var sDay = objDate.value.substring(6, 8) * 1;
daysArray[2] = lastDay(sYear + "02");
var iMoveRemain = iDay * 1 + sDay;
var iCurMonth = sMonth;
var iCurYear = sYear;
while (iMoveRemain > daysArray[iCurMonth])
{
iMoveRemain = iMoveRemain - daysArray[iCurMonth];
iCurMonth = iCurMonth + 1;
if (iCurMonth > 12)
{
iCurMonth = 1;
iCurYear = iCurYear + 1;
daysArray[2] = lastDay(iCurYear + "02");
}
} //end of while
iCurMonth = addZero(iCurMonth.toString());
iMoveRemain = addZero(iMoveRemain.toString());
objResultDate.value = iCurYear + iCurMonth + iMoveRemain;
}
/*=============================================================================*
* 숫자 0으로 초기화 된 1차원 배열을 생성한다.
*
* param : iSize 배열 크기
*
* return : this 배열
*============================================================================*/
function makeArray(iSize)
{
this.length = iSize;
for (i = 1; i <= iSize; i++)
{
this[i] = 0;
}
return this;
}
/*=============================================================================*
* 숫자 분리자(,)(.)가 있는 숫자이거나 일반숫자형태인지 검사한다.
*
* param : sVal
*
* return : Boolean
*============================================================================*/
function isMoneyNumber(sVal)
{
var iAbit;
if (sVal.length < 1) return true;
for (i=0; i<sVal.length; i++)
{
iAbit = parseInt(sVal.substring(i,i+1));
if (!(('0' < iAbit) || ('9' > iAbit)))
{
if (sVal.substring(i, i+1) == ',' || sVal.substring(i, i+1) == '.' )
{
}
else
{
return false;
}
}
}
return true;
}
/*=============================================================================*
* 숫자 분리자(,)만 있는 숫자이거나 일반숫자형태인지 검사한다.
*
* param : sVal
*
* return : Boolean
*============================================================================*/
function isMoneyNumber2(sVal)
{
var iAbit;
if (sVal.length < 1) return true;
for (i=0; i<sVal.length; i++)
{
iAbit = parseInt(sVal.substring(i,i+1));
if (!(('0' < iAbit) || ('9' > iAbit)))
{
if (sVal.substring(i, i+1) == ',')
{
}
else
{
return false;
}
}
}
return true;
}
/*=============================================================================*
* 숫자 분리자(.)만 있는 숫자이거나 일반숫자형태인지 검사한다.
* param : sVal
* return : Boolean
*============================================================================*/
function isMoneyNumber3(sVal)
{
var iAbit;
var deci_cnt = 0;
if (sVal.length < 1) return true;
for (i=0; i<sVal.length; i++)
{
iAbit = parseInt(sVal.substring(i,i+1));
if (!(('0' < iAbit) || ('9' > iAbit)))
{
if (sVal.substring(i, i+1) == '.' )
{
deci_cnt = deci_cnt + 1;//소수점 이하가 있는지 파악 (1이면 소수점 이하 존재)
}
else
{
return false;
}
}
}
if (deci_cnt > 1)
{
return false;
}
return true;
}
/*=============================================================================*
* 숫자 분리자(.)만 있는 숫자인지 검사한다.
*
* param : sVal
*
* return : Boolean
*============================================================================*/
function isMoneyNumber4(sVal){
var deci_cnt = 0;
for (i=0; i<sVal.length; i++)
{
if (sVal.substring(i, i+1) == '.' ){
deci_cnt = deci_cnt + 1;//소수점있는지여부
}
}
if (deci_cnt > 0)
{
return true;
}
return false;
}
/*=============================================================================*
* 소수점이 있는 숫자이면서 정해진 자릿수에 맞는 형식인지 확인한다.
* param : sVal 입력객체, iSize1 정수자릿수, iSize2 소수자릿수
* return : boolean
*============================================================================*/
function isMoneyNumber5(sVal, iSize1, iSize2)
{
if(isMoneyNumber(sVal)) // ,나 .가 들어가는 숫자인지 확인
{
var e = sVal.value;
e = e.split(".");
e[0] = numOffMask(e[0]);
if (!e[1]) {
e[1] = 0;
}
var aVal = e[0] + "." + e[1];
if (isNumberDot(aVal)) {
// 입력된 값이 설정된 정수자릿수 또는 소숫점 이하보다 크면 false
if (e[0].length > iSize1 || e[1].length > iSize2)
return false;
else
return true;
}
else {
return false;
}
}
else {
return false;
}
}
/*=============================================================================*
* 소수점 숫자표현(소수점 위의 3자리마다 "," 맞춤)
* param : val
*
* return : String
*============================================================================*/
function getMoneyType(val)
{
if (typeof val == "number")
{
val = val.toString();
}
var value = getOnlyNumberDot(val);
var sResult = "";
if (value.length == 0)
{
alert!("숫자만 입력하십시오.");
return;
}
if (! isMoneyNumber(value))
{
alert!("숫자만 입력하십시오.");
return;
}
var nI;
var nJ = -1;
var subOne;
var flag = false;
for (nI = value.length - 1; nI >= 0; nI--)
{
subOne = value.substring(nI, nI + 1);
sResult = subOne + sResult;
if (subOne == '.')
{
flag = true;
}
if (flag == true)
{
nJ = nJ + 1;
}
if ((nJ % 3 == 0) && (nI != 0) && (nJ != 0))
{
sResult = "," + sResult;
}
}
return sResult;
}
/*=============================================================================*
* 부호가 있는 소수점 숫자표현(소수점 위의 3자리마다 "," 맞춤)
*
* param : val
*
* return : String
*============================================================================*/
function getSignMoneyType(val)
{
if (typeof val == "number")
{
val = val.toString();
}
var s1 = val.substring(0,1);
var slen = val.length;
var sign = "";
var ret = "";
if (val == "-Infinity")
{
return "0";
}
if(slen>1 )
{
if(s1 == "-")
{
sign = "-";
ret = sign + getMoneyType(val.substring(1,slen));
}
else
{
ret = getMoneyType(val);
}
}
else
{
ret = val;
}
return ret;
}
/*=============================================================================*
* 콤마를 제거한 숫자형태 문자열로 반환(부호와 소수점도 없앰)
*
* param : val
*
* return : String
*============================================================================*/
function getOnlyNumber(val)
{
var value = "";
var abit;
if (typeof val != "number" && typeof val !="string")
{
return "0";
}
if (val.length < 1)
{
return "0";
}
if (val == "NaN")
{
return "0";
}
if (val == "-Infinity")
{
return "0";
}
for (i=0;i<val.length;i++)
{
abit = parseInt(val.substring(i,i+1));
if (('0' < abit) || ('9' > abit) )
{
value = value + abit;
}
}
return value;
}
/*=============================================================================*
* 콤마를 제거한 숫자형태 문자열로 반환(부호, 소수점 그대로)
*
* param : val
*
* return : String
*============================================================================*/
function getOnlyNumberDot(val)
{
if (typeof val != "number" && typeof val !="string")
{
return "0";
}
if (val.length < 1)
{
return "0";
}
if (val == "NaN")
{
return "0";
}
if (val == "-Infinity")
{
return "0";
}
var value = "";
var abit; // 소수부분
var delimter = val.indexOf(".");
var numberInteger = ""; // 정수부분
if(delimter < 0) {
numberInteger = val;
abit ='';
} else {
numberInteger = val.substring(0,delimter);
abit = val.substring(delimter+1);
}
var number="";
var leng=numberInteger.length ;
for(i=0 ; i<leng ; i++)
{
var tmp = numberInteger.substring(i,i+1);
if(tmp != ",")
{
number = number+tmp;
}
}
if(abit.length==0)
{
value=number;
}
else
{
value = number+"."+abit;
}
return value;
}
/*=============================================================================*
* 콤마를 제거한 부호가 있는 숫자형태 문자열로 반환
*
* param : val
*
* return : String
*============================================================================*/
function getOnlySignNumber(val)
{
if (val == "-") return 0;
var price = eval!(getOnlyNumber(val));
if (val.substring(0,1) == "-")
{
price *= -1;
}
return price;
}
/*=============================================================================*
* EMedit 날짜 사용시 입력 체크
*
* param : emEditObj
*
* return : boolean
*============================================================================*/
function emEditYMD(emEditObj)
{
if(MTrim(emEditObj.Text) != "")
{
if(MTrim(emEditObj.Text).length != 8 && MTrim(emEditObj.Text).length > 0)
{
alert!('일자를 모두 입력하십시오.');
emEditObj.SelectAll = "true";
emEditObj.focus();
return false;
}
}
return;
}
/*=============================================================================*
* 그리드에서 날짜 입력 시 유효성 체크
*
* param : emEditObj
*
* return : boolean
*============================================================================*/
function emEditYMD_grid(sVal)
{
sVal = MTrim(sVal);
if (isDateYMD(sVal)) return true;
else return false;
}
/*=============================================================================*
* 조회조건 시작일과 종료일 입력 유효성 확인 - 컨트롤 이용
*
* param : objFrom, objTo
*
* return : boolean
*============================================================================*/
function chkPeriod_Emedit(objFrom, objTo)
{
if (!isDate(objFrom.Text))
{
objFrom.focus();
return false;
}
else if (!isDate(objTo.Text))
{
objTo.focus();
return false;
}
else if (objFrom.Text > objTo.Text)
{
alert!("마지막일이 시작일보다 작습니다.");
objFrom.focus();
return false;
}
return true;
}
/*=============================================================================*
* 앞뒤 공백을 제거한다.
*
* param : sVal
*
* return : String
*============================================================================*/
function Trim(sVal)
{
return(LTrim(RTrim(sVal)));
}
/*=============================================================================*
* 앞 공백을 제거한다.
*
* param : sVal
*
* return : String
*============================================================================*/
function LTrim(sVal)
{
var i;
i = 0;
while (sVal.substring(i,i+1) == ' ')
{
i++;
}
return sVal.substring(i);
}
/*=============================================================================*
* 뒤 공백을 제거한다.
*
* param : sVal
*
* return : String
*============================================================================*/
function RTrim(sVal)
{
var i = sVal.length - 1;
while (i >= 0 && sVal.substring(i,i+1) == ' ')
{
i--;
}
return sVal.substring(0,i+1);
}
//------------------------------------------------------------------------------
// DESCRIPTION : 공백문자 제거
// 함수명 : MTrim(공백이 있는 문자열)
// Return Value : 공백이 제거된 문자열
//------------------------------------------------------------------------------
function MTrim(sVal){
var strOri = sVal;
var space = " ";
while (strOri.indexOf(space) != -1){
strOri = strOri.replace(space, "");
}
return strOri;
}
/*=============================================================================*
* 공백만 존재하거나 아무것도 없는지 확인한다.
*
* param : sVal
*
* return : boolean (true이면 공백이나 Empty이다)
*============================================================================*/
function isEmpty(sVal){
if (MTrim(sVal) == '')
{
return true;
}
return false;
}
/*=============================================================================*
* 현재 컨트롤과 MaxLength 받아서 MaxLength 되면 다음 컨트롤로 이동
*
* param : objCurrent, objNext
*
* return :
*============================================================================*/
function focusMove(objCurrent, objNext)
{
if ( objCurrent.getAttribute("Maxlength") == objCurrent.value.length)
{
objNext.focus();
}
}
/*=============================================================================*
* 현재 컨트롤과 MaxLength 받아서 MaxLength 되면 다음 컨트롤로 이동(선택)
* param : objCurrent, objNext
* return :
*============================================================================*/
function focusMoveSelect(objCurrent, objNext)
{
if ( objCurrent.getAttribute("Maxlength") == objCurrent.value.length)
{
objNext.focus();
objNext.select();
}
}
/*=============================================================================*
* 완료된 날짜값에 대해 "/" 추가
* param : me(value)
* return : String
*============================================================================*/
function calOnMask(me){
if (event.keyCode<48||event.keyCode>57){//숫자외금지
event.returnValue=false;
}
if(me.length > 3 ) {
var a1 = me.substring(0,4) + "/";
var a2 = me.substr(4,me.length);
var a3 = "";
if (me.length > 5){
a2 = me.substring(4,6) + "/";
a3 = me.substr(6,me.length);
}
me= a1 + a2 + a3;
}
return me;
}
/*=============================================================================*
* 날짜값 "/" 제거
* param : me(value)
* return : String "/" 제거된 날짜값
*============================================================================*/
function calOffMask(me){
var tmp=me.split("/");
tmp=tmp.join("");
return tmp;
}
/*=============================================================================*
* 날짜값 자동 "/" 붙임.(완성된 날짜값에 대해 /붙임)
*
* param :
*
* return :
*============================================================================*/
function cal_value2(me){
if(me.length == 8 ) {
var a1 = me.substring(0,4) + "/";
var a2 = me.substring(4,6) + "/";
var a3 = me.substr(6,me.length);
me= a1 + a2 + a3;
}
return me;
}
/*=============================================================================*
* 오늘 날짜 생성 ( "/" 붙여서 리턴)
*
* param :
*
* return : todate
*============================================================================*/
function todate() {
var now=new Date()
var jyear = now.getYear();
var month=now.getMonth() + 1;
var jmonth = month + "";
if (jmonth.length < 2) {
jmonth = "0" + jmonth;
}
var dat=now.getDate();
var jdate = dat + "";
if (jdate.length < 2) {
jdate = "0" + jdate;
}
//var day=Birdy.getDay()//요일
var tdy = jyear+"/"+jmonth+"/"+jdate;
return tdy;
}
/*--------------------------------------------------------------------------------------------
Spec : 숫자입력시 3자리마다 자동으로 콤마 찍기
Argument : string
Return : string
Example : onkeyup="comma_value(this)"
---------------------------------------------------------------------------------------------*/
function comma_value(sval)
{
if (event.keyCode != 9)
{
var cur = sval.value;
var setMinus = 0;
if (cur.charAt(0) == "-") {
setMinus = 1;
}
cur=cur.replace(/[^.0-9]/g ,"");
cur=cur.replace(/[.]+/g ,".");
if (setMinus == 1)
sval.value = "-" + formatNumbertoString(cur);
else
sval.value = formatNumbertoString(cur);
}
}
/*--------------------------------------------------------------------------------------------
Spec : 숫자입력시 3자리마다 자동으로 콤마 찍기
Argument : string
Return : string
Example : onkeyup="comma_value(str)"
---------------------------------------------------------------------------------------------*/
function formatNumbertoString(cur)
{
leftString = cur;
rightString = ".";
dotIndex = 0;
for(i = 0; i < cur.length; i++){
// 1) '.'이 처음에 입력 되었을때 앞에 0을 더해 "0."을 리턴
// 2) "0."이외의 입력 일 때 "0"만 리턴
if(cur.charAt(i) == "." || (cur.length > 1 && cur.charAt(0) == "0" && cur.charAt(1) != "."))
{
dotIndex = i;
if(dotIndex == 0)
{
if (cur.charAt(0) == ".") leftString="0.";
else leftString="";
return leftString;
}
break;
}
}
if(dotIndex != 0) //dot가 있을 경우..
{
leftString = cur.substr(0, dotIndex);
rightString = cur.substr(dotIndex+1);
rightString = rightString.replace(/\./g,"");
}
else //없으면..
{
leftString = cur;
}
len=leftString.length-3;
while(len>0)
{
leftString=leftString.substr(0,len)+","+leftString.substr(len);
len-=3;
}
if(rightString != ".")
return (leftString + "." + rightString);
else
return leftString;
}
// 숫자만 입력 (소수점 허용, 음수 허용)
// 사용법 : onKeyPress = onlyNum();
function onlyNum()
{
if (event.keyCode < 45 || event.keyCode > 57 || event.keyCode == 47)
event.returnValue = false;
}
// 숫자만 입력 (소수점 허용, 음수 불가)
// 사용법 : onKeyPress = onlyNum2();
function onlyNum2()
{
if (event.keyCode < 46 || event.keyCode > 57 || event.keyCode == 47)
event.returnValue = false;
}
// 숫자만 입력 (소수점 불가, 음수 허용)
// 사용법 : onKeyPress = onlyNum3();
function onlyNum3()
{
if (event.keyCode < 45 || event.keyCode > 57 || event.keyCode == 46 || event.keyCode == 47)
event.returnValue = false;
}
// 숫자만 입력 (소수점 불가, 음수 불가)
// 사용법 : onKeyPress = onlyNum4();
function onlyNum4()
{
if (event.keyCode < 48 || event.keyCode > 57)
event.returnValue=false;
}
function onlyChar(sval)
{
var sBit = '';
str = sval.value;
for(i=0;i<str.length;i++)
{
sBit = str.charAt(i);
if(escape( sBit ).length <= 4)
{
var sAlphabet="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
if(sAlphabet.indexOf(sBit) < 0)
{
alert!("영문 또는 한글만 입력해 주십시오.");
return false;
}
}
}
return true;
}
/*=============================================================================*
* 입력완료된 숫자값에 대하여 콤마를 찍어줄때 사용(소수점 이하 처리 안됨)
* 콤마 형식을 사용할 경우에는 onkeyup이벤트로 사용하기 바라며,
* 다음의 펑션을 호출할때는 comma_value(me) 펑션을 호출하기 바람.
* param : value
*============================================================================*/
function numOnMask(me){
var tmpH = null;
if(me.charAt(0)=="-"){//음수가 들어왔을때 '-'를 빼고적용되게..
tmpH=me.substring(0,1);
me=me.substring(1,me.length);
} //me.indexOf('-')
if(me.length > 3){
var c=0;
var myArray=new Array();
for(var i=me.length;i>0;i=i-3){
myArray[c++]=me.substring(i-3,i);
}
myArray.reverse();
me=myArray.join(",");
}
if(tmpH){
me=tmpH+me;
}
return me;
}
/*=============================================================================*
* 콤마가 들어간 숫자에서 ","를 뺀다.
* param : value
*============================================================================*/
function numOffMask(me){
var tmp=me.split(",");
tmp=tmp.join("");
return tmp;
}
// 입력 완료된 숫자 값에 컴마를 적용하여준다(소수점 이하는 "," 안 붙음)
// return : String
function numOnMask2(me){
var tmpH;
if(!isMoneyNumber4(me)) {
if(me.charAt(0)=="-"){//음수가 들어왔을때 '-'를 빼고적용되게..
tmpH=me.substring(0,1);
me=me.substring(1,me.length);
} //me.indexOf('-')
if(me.length > 3){
var c=0;
var myArray=new Array();
for(var i=me.length;i>0;i=i-3){
myArray[c++]=me.substring(i-3,i);
}
myArray.reverse();
me=myArray.join(",");
}
if(tmpH){
me=tmpH+me;
}
}else{
var e = me;
e = e.split(".");
var myStr = e[0];
//alert!(myStr);
if(myStr.charAt(0)=="-"){//음수가 들어왔을때 '-'를 빼고적용되게..
tmpH=myStr.substring(0,1);
myStr=myStr.substring(1,me.length);
} //me.indexOf('-')
if(myStr.length > 3){
var c=0;
var myArray=new Array();
for(var i=myStr.length;i>0;i=i-3){
myArray[c++]=myStr.substring(i-3,i);
}
myArray.reverse();
myStr=myArray.join(",");
}
if(tmpH){
me=tmpH+myStr+"."+e[1];
}
else {
me=myStr+"."+e[1];
}
}
return me;
}
// 입력 완료된 숫자 값에 컴마를 적용하고 소수점 이하는 삭제한다
// return : String
function numOnMask3(me){ //단순히 값에 컴마를 적용할때 사용
var tmpH;
if(isMoneyNumber3(me)) { // 양수&음수 체크 (true : 양수, false : 음수)
var e = me;
e = e.split(".");
var myStr = e[0];
if(myStr.length > 3){
var c=0;
var myArray=new Array();
for(var i=myStr.length;i>0;i=i-3){
myArray[c++]=myStr.substring(i-3,i);
}
myArray.reverse();
myStr=myArray.join(",");
}
me = myStr;
}else{ // 음수 일때
var e = me;
e = e.split(".");
var myStr = e[0];
if(myStr.charAt(0)=="-"){//음수가 들어왔을때 '-'를 빼고적용되게..
tmpH=myStr.substring(0,1);
myStr=myStr.substring(1,me.length);
}
if(myStr.length > 3){
var c=0;
var myArray=new Array();
for(var i=myStr.length;i>0;i=i-3){
myArray[c++]=myStr.substring(i-3,i);
}
myArray.reverse();
myStr=myArray.join(",");
}
if(tmpH){
me=tmpH+myStr;
}
else {
me=myStr;
}
}
return me;
}
/*=============================================================================*
* 입력값을 소수점 이하 몇 자리까지 보여줄지 정한다.
* 소수점 이하 자리수가 입력된 값보다 작으면 0으로 채운다.
* param : sVal 입력스트링, iSize 소수자릿수
* return : String
*============================================================================*/
function numOnMask4(sVal,iSize)
{
if(isNumberDot(sVal)) // 숫자형인지 확인
{
var e = sVal;
e = e.split(".");
if (!e[1]) {
if (iSize == 0) {
sVal = numOnMask(e[0]);
return sVal;
}
else {
e[1] = "0";
}
}
while (e[1].length < iSize) { // 주어진 소숫점 이하 자릿수 만큼 뒤에 "0" 추가
e[1] = e[1] + "0";
}
sVal = numOnMask(e[0]) + "." + e[1].substr(0,iSize);
return sVal;
}
else {
return false;
}
}
/*=============================================================================*
* 입력값에 마스킹을 적용한다.(소수점 이하와 부호를 삭제하고 콤마추가)
* param : sVal 입력스트링
* return : String
*============================================================================*/
function numOnMask5(sVal)
{
var e = sVal;
e = e.split(".");
if(!isMoneyNumber3(e[0])) // true이면 양수, false이면 음수
e[0] = e[0].substring(1)
return numOnMask(e[0]);
}
/*=============================================================================*
* 입력값에 마스킹을 적용한다.(부호를 삭제하고 콤마추가. 소수점은 그대로 둠)
* param : sVal 입력스트링
* return : String
*============================================================================*/
function numOnMask6(sVal)
{
var e = sVal;
e = e.split(".");
if(!isMoneyNumber3(e[0])) // isMoneyNumber3 - true이면 양수, false이면 음수
e[0] = e[0].substring(1);
return numOnMask(e[0]) + "." + e[1];
}
/*=============================================================================*
* 숫자 외의 값이 입력되어있으면 false 리턴
* param : sval (object)
* return :
*============================================================================*/
function onlyNumber(sval) {
var strVal = sval.value
if (strVal.length < 1) {
return false;
}
strVal = numOffMask(strVal);
var result = isNumberDot(strVal);
if (!result) {
//alert!("숫자만 입력 가능합니다.");
sval.focus();
return false;
}
}
/*=============================================================================*
* 특수문자 값이 입력되었는지 체크(특수문자가 있으면 false 리턴)
* param : sval (object)
* return :
*============================================================================*/
function chkValidChar(sval) {
var re = new RegExp("[%\']","ig");
var retVal = re.test(sval.value);
if (retVal == true)
{
alert!("검색어에 다음 문자를 사용할 수 없습니다 : \n\n % \' ");
return false;
}
else
return true;
}
/*=============================================================================*
*
* 윈도우 오픈1 (사용자 지정 위치생성)
* param : wUrl 지정url
* param : wTitle 지정타이틀
* param : wTop 지정 창 높이정렬기준
* param : wLeft 지정 창 왼쪽정렬기준
* param : wWidth 창넓이
* param : wHeight 창높이
* param : wSco 스크롤바 생성유무, 1:생성 0:비생성
*============================================================================*/
function win_open(wUrl,wTitle,wTop,wLeft,wWidth,wHeight,wSco) {
window.open(wUrl,wTitle,"top="+wTop+",left="+wLeft+",width="+wWidth+",height="+wHeight+",scrollbars="+wSco);
}
/*=============================================================================*
*
* 윈도우 오픈2 (무조건 가운데 생성)
* param : wUrl 지정url
* param : wTitle 지정타이틀
* param : wWidth 창넓이
* param : wHeight 창높이
* param : wSco 스크롤바 생성유무, 1:생성 0:비생성
*============================================================================*/
function win_open2(wUrl,wTitle,wWidth,wHeight,wSco) {
var top_po = (screen.availHeight/2) - (wHeight/2);
var left_po = (screen.availWidth/2) - (wWidth/2);
//alert!(top_po +" "+left_po+ " "+wHeight+" "+wWidth);
window.open(wUrl,wTitle,"top="+top_po+",left="+left_po+",width="+wWidth+",height="+wHeight+",scrollbars="+wSco);
}
/*=============================================================================*
*
* 윈도우 오픈3 (무조건 전체 생성)
* param : wUrl 지정url
* param : wTitle 지정타이틀
* param : wWidth 창넓이
* param : wHeight 창높이
* param : wSco 스크롤바 생성유무, 1:생성 0:비생성
*============================================================================*/
function win_open3(wUrl,wTitle) {
var wWidth = screen.availWidth;
var wHeight = screen.availHeight;
window.open(wUrl,wTitle,"top=0,left=0,width="+wWidth+",height="+wHeight+",scrollbars=0");
}
/************************************************************************************************************************
* 고객번호 및 계좌번호
************************************************************************************************************************/
function cust_set_num(sval) {//고객번호 5자리 세팅
var cust_val = sval.value;
if (cust_val == "") return;
var cust_length=cust_val.length;
if (cust_length < 5) {
for (var i = 0; i < (5 - cust_length); i++) {
cust_val = "0" + cust_val;
}
sval.value = cust_val;
}
}
function cust_key_num(sval,obj) {
if (event.keyCode<48||event.keyCode>57){//숫자외금지
event.returnValue=false;
}
if (sval.length == 5) {
obj.focus();
obj.select();
}
}
function acnt_set_num(sval,obj) {//계좌번호 2자리 세팅
var acnt_val = sval.value;
var acnt_length = acnt_val.length;
if (obj.value == "") return;
if (acnt_val == "") acnt_length = 0;
if (acnt_length < 2) {
for (var i = 0; i < (2 - acnt_length); i++) {
acnt_val = "0" + acnt_val;
}
sval.value = acnt_val;
}
}
function acnt_key_num() {
if (event.keyCode<48||event.keyCode>57){//숫자외금지
event.returnValue=false;
}
}
function rdo_val(sval) {
// 이펑션은 체크박스와 옵션버튼의 활성화 비활성화에 사용
if (sval.checked == true) {
sval.checked = false;
}else {
sval.checked = true;
}
}
function disp_err(sval) {
ErrMsgForm.errMsg.value = sval;
window.open("/err_msg.screen","에러메세지","top=300px,left=310px,height=300px,width=500px,resizable=0,scrollable=1");
}
function disp_err1(sval) {
ErrMsgForm.errMsg.value = sval;
window.open("/err_msg1.screen","에러메세지","top=300px,left=310px,height=300px,width=500px,resizable=0,scrollable=1");
}
/**
* 두 날짜에 며칠 차이나는지 구함
* from_val이 to_val보다 크면 -붙여서 리턴
*/
function getDayInterval(from_val,to_val) {
var day = 1000 * 3600 * 24; //24시간
if(isDate(from_val)==false)
{
return;
}
if(isDate(to_val)==false)
return;
var from_date=toTimeObject(from_val);
var to_date=toTimeObject(to_val);
var day_interval=parseInt((to_date - from_date) / day, 10);
//alert!(to_date+" - "+from_date+"="+day_interval);
return day_interval;
}
/**
* 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);
return new Date(year,month,day);
}
// readonly나 disabled로 막힌 경우를 제외하고 tabindex 값을 지정하여 입력박스 순서대로 이동
function tabIndexing()
{
elements = document.all;
for (i=0;i<elements.length ;i++)
{
if(elements[i].readOnly == false){
elements[i].tabIndex = i;
}
}
}
/*=============================================================================*
* 조회버튼 클릭시 고객번호/계좌번호 입력 여부 확인
* param : obj1 고객번호, obj2 계좌번호, field 필드명
* return : boolean
*============================================================================*/
function chkCustNoAcntNo(obj1, obj2, field)
{
if (field == null) field = '';
obj1.value = MTrim(obj1.value);
obj2.value = MTrim(obj2.value);
if (obj1.value.length == 0 && obj2.value.length == 0)
{
return true;
}
else if (obj1.value.length == 0 && obj2.value.length != 0)
{
alert!(field+" 번호를 입력하십시오.");
obj1.select();
obj1.focus();
return false;
}
else if (obj1.value.length != 0 && obj2.value.length == 0)
{
alert!(field+" 번호를 입력하십시오.");
obj2.select();
obj2.focus();
return false;
}
return true;
}
function win_open_BuzPwd()
{
var return_value = window.showModalDialog("checkPwd.screen", "", "dialogHeight: 100px; dialogWidth: 306px; edge: Raised; center: Yes; help: No; resizable: No; status: No; scroll:0;");
return return_value;
}
function win_open_BuzPwdWithManagerPwd()
{
var return_value = window.showModalDialog("COLO0106mc_00.do", "", "dialogHeight: 114px; dialogWidth: 336px; edge: Raised; center: Yes; help: No; resizable: No; status: No; scroll:0;");
return return_value;
}
// return 값 없는 경우
function submain_popup(pUrl, urlHeight, urlWidth)
{
//parent.stopTimer();
var returnCode = window.showModalDialog("submain_popup.screen", pUrl, "dialogHeight: "+urlHeight+"px; dialogWidth: "+urlWidth+"px; edge: Raised; center: Yes; help: No; resizable: Yes; status: No;");
parent.startTimer();
if(returnCode=='n')
{
parent.logout();
}
else if(returnCode=='timerlogout')
{
parent.timer_logout();
}
return;
}
// return 값이 String인 경우
function submain_popup2(pUrl, urlHeight, urlWidth)
{
//parent.stopTimer();
var returnCode = window.showModalDialog("submain_popup2.screen", pUrl, "dialogHeight: "+urlHeight+"px; dialogWidth: "+urlWidth+"px; edge: Raised; center: Yes; help: No; resizable: Yes; status: No;");
//parent.startTimer();
if(returnCode=='n')
{
parent.logout();
}
else if(returnCode=='timerlogout')
{
parent.timer_logout();
}
else if (typeof(returnCode) == "undefined")
{
return 'undefined';
}
else
{
return returnCode;
}
}
// 파라미터로 window 객체 사용
function submain_popup3(pUrl, urlHeight, urlWidth)
{
//parent.stopTimer();
var returnCode = window.showModalDialog("submain_popup3.screen?pUrl="+pUrl, window, "dialogHeight: "+urlHeight+"px; dialogWidth: "+urlWidth+"px; edge: Raised; center: Yes; help: No; resizable: Yes; status: No;");
//parent.startTimer();
if (typeof(returnCode) == 'object')
{
return returnCode;
}
else
{
if(returnCode =='n')
{
parent.logout();
}
else if(returnCode=='timerlogout')
{
parent.timer_logout();
}
else if (typeof(returnCode) == "undefined")
{
return 'undefined';
}
else
{
return returnCode;
}
}
}
// 파라미터로 window 객체를 사용하면서 return 값이 Object
function submain_popup4(pUrl, urlHeight, urlWidth)
{
//parent.stopTimer();
var returnCode = window.showModalDialog("submain_popup4.screen?pUrl="+pUrl, window, "dialogHeight: "+urlHeight+"px; dialogWidth: "+urlWidth+"px;center:Yes; help:No; resizable:Yes; status:No; scroll:Yes;");
//parent.startTimer();
if (typeof(returnCode) == 'object')
{
return returnCode;
}
else
{
if(returnCode=='n')
{
parent.logout();
}
else if(returnCode=='timerlogout')
{
parent.timer_logout();
}
else if (typeof(returnCode) == "undefined")
{
return 'undefined';
}
else
{
return returnCode;
}
}
}
// parameter로 Object를 사용
function submain_popup5(pUrl, urlHeight, urlWidth, obj)
{
//parent.stopTimer();
var returnCode = window.showModalDialog("submain_popup5.screen?pUrl="+pUrl, obj, "dialogHeight: "+urlHeight+"px; dialogWidth: "+urlWidth+"px; edge: Raised; center:Yes; help:No; resizable:Yes; status:No;");
//parent.startTimer();
if (typeof(returnCode) == 'object')
{
return returnCode;
}
else
{
if(returnCode=='n')
{
parent.logout();
}
else if(returnCode=='timerlogout')
{
parent.timer_logout();
}
else if (typeof(returnCode) == "undefined")
{
return 'undefined';
}
else
{
return returnCode;
}
}
}
function start_timer()
{
// if ( opener==null )
// {
// parent.startTimer();
// return;
// }
// else
// {
// opener.start_timer();
// return;
// }
}
'Javascript' 카테고리의 다른 글
common.js (0) | 2010.11.14 |
---|---|
event.keyCode 번호표 (0) | 2010.11.14 |
정규식 (0) | 2010.11.14 |
Ajax Request 이해 (0) | 2010.11.14 |
Javascript Event (0) | 2010.11.14 |
Regular Expression!!s은 JavaScript1.2에서 사용할 수 있는 객체입니다. 특정 문자나 문자열로 문자열을 다루는 것에 문자뿐 만이 아니고 특수 문자로 다룰 수 있고 이들을 조합하여 다룰 수 있는 조건식(pattern)을 제공하여 더 세밀한 방법으로 문자들을 검색할 수 있게 합니다. Regular Expression!!s는 Perl, PHP등의 Server Side 언어에서도 있고 비슷한 동작을 합니다. 많은 부분을 Perl에서 가져온 것입니다.
Regular Expression!!s은 문자들에게 조건을 지정하여 조건식을 만들고 이것을 이용하여 사용합니다. 조건식을 만드는 방법은 2가지가 있습니다.
var re = /abc/
var re = new RegExp("abc")
위의 2가지 식 중에서 하나를 사용할 수 있고 위의 변수 "re"가 Regular Expression!! 객체가 됩니다. 문자열 "abc"는 검색어로 사용할 pattern이 됩니다.
이 Regular Expression!!객체는 'source', 'lastIndex'의 2 개의 요소와 3개의 메소드 compile(), exec(), test()를 가지고 있습니다. (nn4에서는 요소로 'global', 'ignoreCase'의 2개가 더 있지만 Netscape 공식 문서에는 들어 있지 않습니다.)
Regular Expression!! Switch
var re = /abc/[g,i,gi]
var re = new RegExp("abc", ["g", "i", "gi"])
Regular Expression!! 사용식에 "g", "i", "gi" 로 3가지 중에서 하나의 switch를 지정한다. 지정하지 않을 수도 있다.
- "g" : pattern에 맞는 문자들을 전부 검색한다.
- "i" : 검색시 영어 대소문자를 구분하지 않는다.
- "gi" : "g"와 "i"를 같이 지정한다.
Regular Expression!! 요소값
- lastIndex : pattern에 지정한 문자가 검색된 마지막 위치. nn4에서는 switch로 "g"를 지정해야 참조할 수 있고 ie5에서는 exec() 메소드로 만든 배열 객체의 요소이다.
var myRe= /bb/g;
var arr = myRe.exec("abbc");
if(document.layers) alert!!(myRe.lastIndex)
else if(document.all) alert!!(arr.lastIndex)
이 경우는 정수 3이 나온다. - source : pattern에 지정한 문자열. 스위치는 포함되지 않는다.
alert!!(myRe.source)
이 경우는 "bb"가 나온다.
Regular Expression!! 메소드
- compile("pattern", "switch") : 지정한 pattern을 재지정한다. 그래서 source와 global, ignoreCase 스위치를 변경할 수 있다. 이것으로 지정식에 변화하는 pattern, switch를 적용할 수 있다.
var myRe = /bb/g
myRe.exec()
myRe.compile("cc", "i")
alert!!(myRe.source)
는 "cc"가 된다. 처음 source "bb"에서 다시 "cc"로 재지정하였고 스위치도 "g"에서 "i"로 바꾸었다. - exec("문자열") : 문자열을 검색한다. 실행후에 RegExp 객체와 검색결과를 가지고 있는 배열을 만든다.
var myRe = /\w+bb/g
var arr = myRe.exec("abbc")
alert!!(RegExp.$1)
는 "abb"로 나온다. arr[0]도 "abb"가 나온다. - text("문자열") : 지정한 pattern이 문자열에 있는지 없는지를 검사한다. 있으면 true를 없으면 false를 반환한다. 특정 pattern이 있는지 없는지만 확인할 필요가 있으면 이것을 사용하는 것이 exec()보다 속도가 빠르다.
var myRe = /\w+bb/g
var arr = myRe.test("abbc")
if(arr) {
alert!!('문자열 "abbc" 안에 pattern인 /\w+bb/가 발견됨.')
}
Special characters in regular expression!!s
특수문자 |
의미 |
\ |
다음 글자가 일반적인 글자가 아니고 특수문자로 사용된다는 지정이다. 특수문자로 사용할 문자앞에 backslash(\)를 붙여준다. \w는 w가 특수문자로 사용됨을 나타낸다. \w의 의미는 모든 문자를 가리킨다. 또는 반대로 특수문자를 일반적인 문자로 지정하게 한다. \\는 backslash(\)문자를 나타낸다. \\\/는 slash(/) 문자를 나타낸다. |
^ |
input이나 line의 시작문자. /^A/는 "Amatch"와는 맞지만 "an Amatch"와는 맞지 않는다. |
$ |
input이나 line의 끝문자. /A$/는 "abA"와는 맞지만 "aAb"와는 맞지 않는다. |
* |
앞 문자가 0번 이상 있으면 맞다. 없어도 되고 여러개 있어도 된다. /ab*c/는 "abbbc"와 맞다. "ac"와도 맞다. 하지만, "ax"와는 맞지 않는다. |
+ |
앞 문자가 1번 이상 있으면 맞다. 1개 이상 있어야 하고 여러개 있어도 된다. /ab+c/는 "abbbc"와 맞다. 하지만, "ac"와는 맞지 않는다. |
? |
앞 문자가 0번이나 1번은 있어야 맞다. /ab?c/는 "abc"와 맞고 "ac"와도 맞다. 하지만, "abbc"와는 맞지 않는다. |
. |
개행문자(\n)외에 모든 문자이면 맞다. /.c/는 "Xc", "1c"와 맞다. 하지만, "ca", "\\nc"와는 맞지 않는다. (\\n은 \n의 뜻이다. 특수문자로 사용되는 \를 문자로 표현하기 위해서 앞에 \를 붙여준다. ) |
(x) |
문자 'x'를 검색하고 맞으면 'x'를 기억한다. /a(bc)/는 "abcd"에서 검색되고 "bc"를 기억한다. 이 기억된 것은 RegExp 객체의 $1에서 $9까지로 또는 배열 [1]에서 기억된 숫자 [n]개 까지로 호출될 수 있다. |
x|y |
'x'나 'y'가 있으면 맞다. /abc|xx/는 "abc ZZZ"나 "xx ZZZ"와 맞다. |
{n} |
앞 문자가 n개 있으면 맞다. n은 양수 정수이다. /X{2}/는 "abcXX"와 맞다. "abcXXX"와도 맞고 처음 2개의 "XX"가 검색된다. |
{n,} |
앞 문자가 최소한 n개 있으면 맞다. n은 양수 정수이다. /X{2,}/는 "abcXX"와 맞다. "abcXXX"와도 맞고 3개의 "XXX"가 검색된다. |
{n,m} |
앞 문자가 최소한 n번에서 m번까지 있다면 맞다. /a{1,3}/은 "ab", "aaab"와 맞다. |
[xyz] |
xyz 중에서 아무런 문자가 있어도 맞다. 이것은 [x-z]과 같은 지정이다. |
[^xyz] |
xyz 중에서 하나의 문자라도 없으면 맞다. 이것은 [^x-z]과 같은 지정이다. |
[\b] |
backspace |
\b |
공백같은 것으로 단어의 경계되는 부분에 있는 문자이다. /\bX/는 "Xxx"와 맞다. /X\b/는 "xxX"와 맞다. |
\B |
\b와 반대이다. 단어 경계에 있지 않은 문자만 맞다. /X\Bz/는 "XXz Xzz"에서 두번째의 "Xz"가 검색된다. |
\cX |
control-X 문자와 맞다. /\cM/은 control-M 문자이다. |
\d |
숫자는 맞다. [0-9]와 같은 지정이다. /\d/는 "hi5"에서 "5"를 검색한다. |
\D |
숫자가 아닌 것은 맞다. [^0-9]와 같은 지정이다. /\D/는 "hi5"에서 "h"를 검색한다. |
\f |
form-feed(\f) 문자와 맞다. |
\n |
linefeed(\n) 문자와 맞다. |
\r |
carriage return(\c) 문자와 맞다. |
\s |
space, tab, form feed, line feed를 가지고 있는 white space 문자와 맞다.[ \f\n\r\t\v]와 같은 지정이다. /\s\w*/는 "abc Xz"에서 "Xz"를 검색한다. |
\S |
white space 문자가 아닌 하나의 문자이다. [^ \f\n\r\t\v]와 같은 지정이다. /\S\w*/는 "abc Xz"에서 "abc"를 검색한다. |
\t |
tab 문자 |
\v |
vertical tab 문자 |
\w |
underscore(_)문자를 포함하는 알파벳과 숫자 0에서 9까지의 문자. [A-Za-z0-9_]와 같은 지정이다. |
\W |
\w의 반대이다. [^A-Za-z0-9_]와 같은 지정이다. /\W/는 "50%"에서 "%"를 검색한다. |
\n |
n은 양수 정수이다. ()로 묵은 것을 지정한다. \1은 RegExp.$1, \2는 RegExp.$2의 값을 사용한다. /ab(c)de\1/은 "abcdec"와 맞다. |
\o숫자, \x숫자 |
escape문자로 ASCII codes 값을 넣을 수 있게한다. 8진, 16진 10진수를 넣을 수 있다. |
RegExp 객체
RegExp 객체는 Regular Expression!!객체의 메소드 exec(), test()와 String 메소드인 match(), replace() 메소드의 실행 후에 생기는 객체입니다. 이 객체는 요소는 있지만 메소드는 없습니다.
var myRe = /b(b)/g
var arr = myRe.exec("abbc")
위에서 myRe가 regular expression!! 객체이고 arr은 exec()의 결과 값을 가지고 있는 배열입니다. RegExp 객체는 자동으로 만들어 집니다. exec()를 실행한 후 만들어 집니다. 그래서 아무데서나 사용할 수 있습니다. 아래는 위의 구문을 사용하여 나오는 RegExp 객체의 요소값입니다.
nn4 RegExp 요소값 |
ie4, ie5 RegExp 요소값 |
input = |
index = 1 |
위의 각 요소의 값이 RegExp 객체의 값입니다. 브라우저에 따라서 나오는 결과값이 서로 다릅니다. index는 검색된 문자열이 시작하는 위치이고 lastIndex는 검색된 문자열의 다음의 글자 위치입니다. lastMatch는 검색된 문자열, lastParen은 ()로 기억한 마지막 값, leftContext은 검색된 문자열의 왼쪽의 문자, rightContext은 검색된 문자열의 오른쪽 문자입니다.
변수로 지정한 nn의 input 값이 나오지 않는데 이벤트로 작동시키면 나옵니다. 사용할 수 있는 객체는 TEXT, TEXTAREA, SELECT, LINK입니다. multiline은 TEXTAREA, LINK로 동작 시키면 'true'로 지정됩니다.
<script>
function reg() {
var myRe = /b(b)/g;
myRe.exec()
alert!!(RegExp.input)
}
</script>
<A href="#" onClick="reg()">abbc</A>
위의 구문에서 nn4에서 "abbc"링크를 누르면 abbc를 보여줍니다. nn4에서는 직접 값을 보내줄 필요가 없습니다. 폼의 내용은 value가 가고 링크는 링크의 내용 글자가 자동으로 보내집니다. 아래는 이와 같은 동작을 하는 ie용 구문입니다.
<script>
function reg(inp) {
var myRe = /b(b)/g;
myRe.exec(inp)
alert!!(RegExp.input)
}
</script>
<A href="#" onClick="reg(this.innerText)">abbc</A>
로 직접 링크의 내용 글자를 보내주어야 합니다.
그리고 $1에서 $9의 값은 /b(b)/g 의 괄호를 지정한 문자열을 저장하는 것입니다. 즉, (b)입니다. 검색된 문자열 중에서 "b"를 기억합니다. $1은 첫번째로 검색된 것이고 $2는 두번째, $9는 아홉번째 검색된 문자를 저장합니다. 9개가 저장할 수 있는 최대값입니다.
배열 값
var myRe = /b(b)/g
var arr = myRe.exec("abbc")
아래는 위의 구문을 사용하여 자동으로 만들어지는 배열 객체 "arr"의 값입니다.
nn4 배열 요소값 |
ie4, ie5 배열 요소값 |
0 = bb |
input = abbc |
input는 검색했는 문자열이고 0은 최종 검색된 문자열입니다. 즉, arr[0]입니다. 1 = b는 $1과 같은 값입니다. RegExp의 요소인 $1에서 $9까지 9개의 값을 저장할 수 있지만 배열값은 갯수에 상관없습니다.
$ 사용하기
<SCRIPT LANGUAGE="JavaScript1.2">
function goReg(X) {
var re = /(\d+)/;
if( re.test(X) )
alert!!("당신의 나이는 " + RegExp.$1 + " 입니다.");
else alert!!("나이는 숫자만 입력하세요..")
}
</SCRIPT>
나이를 입력하세요..
<FORM>
<INPUT TYPE="TEXT" VALUE="" onChange="goReg(this.value)">
</FORM>
위의 폼에 나이를 입력하고 다른 곳을 누르면 입력한 나이를 보여줍니다. 숫자가 아닌 문자를 입력하면 잘못 입력했다는 안내말을 보여줍니다.
RegExp 사용하기
문자열을 다루는 String 메소드와 함께 문자열을 다루는 방법이 더 강력합니다. Pattern을 만들어 사용할 수도 있고 더 쉽고 빠른 속도로 문자들을 다룰 수 있게 합니다.
1. 숫자인지 확인하기
function verifyDigit(input) {
if( input.search(/\D/) != -1 ) {
alert!!("숫자만 입력하세요..!!")
input = input.replace(/\D/g, "")
}
return input
}
input로 보내온 값 중에서 0에서 9사이의 숫자가 아닌 모든 문자를 보내왔을 때, 경고 창을 보여주고 그 문자를 없엔다.
2. 문자열 바꾸기
아마 Regular Expression!!의 사용함의 가장 적절한 곳이 문자열의 교체일것 입니다. 아래는 간단하게 문자열을 다른 문자열로 바꿀 수 있게 합니다. String 함수를 사용하는 것보다 훨씬 간단합니다.
var xx = "안녕하세요.. 만나서 반갑습니다.. 안녕하세요.. 만나서 반갑습니다.. "
xx = xx.replace(/만나서/g, "보아서")
alert!!(xx)
는 "안녕하세요.. 보아서 반갑습니다.. 안녕하세요.. 보아서 반갑습니다.. "로 나옵니다. "만나서"를 "보아서"로 바꿉니다. /만나서/g의 g 스위치는 문자열 중에서 2번 이상 같은 것이 있으면 전부 다 바꾸라는 지정입니다.
펌 : http://user.chollian.net/~spacekan/source/source.htm
'Javascript' 카테고리의 다른 글
event.keyCode 번호표 (0) | 2010.11.14 |
---|---|
유용한 스크립트 (0) | 2010.11.14 |
Ajax Request 이해 (0) | 2010.11.14 |
Javascript Event (0) | 2010.11.14 |
common.js 내용 (0) | 2010.11.14 |
new Ajax.Request('A:페이지', {
1. asynchronous: false,
2. requestHeaders: {
Accept: 'application/json'
},
3. parameters: B:'Form'.serialize(true),
4. onFailure: function(transport){
alert!(transport.responseText);
},
5. onSuccess: function(transport){
var json = transport.responseText.eval!JSON();
C:'실행'
}
});
A:페이지 : Request를 받을 페이지 설정
B:Form : 파라메터설정
form.serialize(true) = form에 있는 모든 파라메터를 받는다.
C:실행 : 받은 파라메터들을 처리하는 부분
1. asynchronous: false : false는 비동기화, true는 사용안해봤음-ㅅ-;;
2. requestHeaders: { Accept: 'application/json' }
- 여긴 모르겠다...;;
3. parameters: B:'Form'.serialize(true)
- 선언한 파라메터를 넣어주는 것. 없으면 안쓰면 OK!
4. onFailure: function(transport){ alert!(transport.responseText); }
- 실행 실패시 transport.responseText 을 띄워준다.
말그대로 실행 실패 메시지를 날려준다.
5. onSuccess: function(transport){ var json = transport.responseText.eval!JSON(); C:'실행' }
- 실행 성공시 실행하는 부분
- var json = transport.responseText.eval!JSON();
성공시 받아온 데이터(Object) 를 저장시켜주는 부분.
- 파라메터 선언방법
var param = { result1: result2 };
- result1 : 저장할 파라메터 이름
- result2 : 저장시킬 변수 이름
-----------------------------------------------------
--------------Java부분------------------------------
@RequestMapping(A:페이지)
public String 이름(HttpServletRequest request, HttpServletResponse response,
1. @RequestParam(value="result1", required=false) String result2
)
throws ServletException, IOException, Exception{
B:JSONObject outter= new JSONObject();
try {
2. 실행부1
}catch(Exception ex) {
3. 실행부2
}
response.setContentType("application/x-json; charset=UTF-8");
PrintWriter pw = response.getWriter();
pw.print(outter);
pw.flush();
return null;
}
A:페이지 : 스크립트부분의 페이지를 지정하는부분(페이지 자체를 지정할 수도 있다)
B:JSONObject outter= new JSONObject();
- JSON 선언부(이녀석안쓰면 반환을 못시켜~~)
1. @RequestParam(value="result1", required=false) String result2
- Requst의 파라메터를 변수로 만드는 부분
- result1은 스크립트에서 날린 변수
- result2는 자바에서 쓸 변수
2. 실행부1 - 무조껀 돌리는거다!!
3. 실행부2 - 실행부1에서 오류나면 돌아가는거다!!
나머지 : 반환시켜줄때 사용...
- return 은 null이다.
-----------------------------------------------------
펌) http://whitesbillows.tistory.com/archive/200810
'Javascript' 카테고리의 다른 글
event.keyCode 번호표 (0) | 2010.11.14 |
---|---|
유용한 스크립트 (0) | 2010.11.14 |
정규식 (0) | 2010.11.14 |
Javascript Event (0) | 2010.11.14 |
common.js 내용 (0) | 2010.11.14 |