/****************************************************************************************** * 기능 : 문자열의 위치를 대소문자 구별하여 찾는다 * 인자 : 1. sOrg : 원래 문자열( 예 : "aaBBbbcc" ) 2. sFind : 찾고자 하는 문자열( 예 : "bb" ) 3. nStart : 검색 시작위치 (옵션 : Default=0) ( 예 : 1 ) * 리턴 : 성공 = 찾고자 하는 문자열의 시작위치 ( 예 : 4 ) 실패 = -1 * 예문 : *****************************************************************************************/
function fn_Pos(sOrg, sFind, nStart)
{
if( fn_IsNull(sOrg) || fn_IsNull(sFind) ) return -1;
if( fn_IsNull(nStart) ) nStart = 0;
return sOrg.indexOf(sFind, nStart);
}
/****************************************************************************************** * 기능 : 문자열의 위치를 대소문자 구별없이 찾는다 * 인자 : 1. sOrg : 원래 문자열( 예 : "aaBBbbcc" ) 2. sFind : 찾고자 하는 문자열( 예 : "bb" ) 3. nStart : 검색 시작위치 (옵션 : Default=0) ( 예 : 1 ) * 리턴 : 성공 = 찾고자 하는 문자열의 시작위치 ( 예 : 2 ) 실패 = -1 * 예문 : *****************************************************************************************/
function fn_PosCase(sOrg, sFind, nStart)
{
if( fn_IsNull(sOrg) || fn_IsNull(sFind) ) return -1;
if( fn_IsNull(nStart) ) nStart = 0;
return sOrg.toLowerCase().indexOf(sFind.toLowerCase(), nStart);
}
{
if( sOrg.substr( pos, sFind.length ) == sFind ) break;
}
return pos;
}
/****************************************************************************************** * 기능 : 문자열의 위치를 대소문자 구별없이 거꾸로 찾는다 * 인자 : 1. sOrg : 원래 문자열( 예 : "aaBBbbcc" ) 2. sFind : 찾고자 하는 문자열( 예 : "BB" ) 3. nStart : 검색 시작위치 (옵션 : Default=문자열의 끝 ) ( 예 : 6 ) * 리턴 : 성공 = 찾고자 하는 문자열의 시작위치 ( 예 : 4 ) 실패 = -1 * 예문 : *****************************************************************************************/
function fn_PosReverseCase(sOrg, sFind, nStart)
{
var pos;
if( fn_IsNull(sOrg) || fn_IsNull(sFind) ) return -1;
if( fn_IsNull(nStart) ) nStart = sOrg.length-1;
for( pos = nStart ; pos >= 0 ; pos-- )
{
if( sOrg.substr( pos, sFind.length ).toLowerCase() == sFind.toLowerCase() ) break;
}
return pos;
}
/****************************************************************************************** * 기능 : 시작글자와 끝글자에 해당하는 글자의 사이에 있는 가운데 글자를 대소문자를 구별하여 찾는다. ( 예 : aaBBbbccdd에서 bb, dd사이의 글자 cc를 찾는다 ) * 인자 : 1. sOrg : 원래 문자열( 예 : "aaBBbbccdd" ) 2. sStart : 찾고자 하는 시작 문자열(옵션 : Default = "")(예 : "bb" ) (만일, sStart=""이면 nStart부터 sEnd까지의 모든 문자열이 return된다.) 3. sEnd : 찾고자 하는 끝 문자열 (옵션 : Default = "")( 예 : "dd" ) (만일, sEnd=""이면 sStart부터 문자열의 끝까지의 모든 문자열이 return된다.) 4. nStart : 검색 시작위치 (옵션 : Default=0) ( 예 : 1 ) * 리턴 : 성공 = 가운데 글자 ( 예 : "cc" ) 실패 = "" * 예문 : *****************************************************************************************/
function fn_Mid(sOrg, sStart, sEnd, nStart)
{
var pos_start, pos_end, ret_str;
if( fn_IsNull(sOrg) ) return "";
if( fn_IsNull(sStart) ) sStart = "";
if( fn_IsNull(sEnd) ) sEnd = "";
if( fn_IsNull(nStart) ) nStart = 0;
if( sStart == "" )
pos_start = nStart;
else{
pos_start = Pos(sOrg, sStart, nStart);
if( pos_start < 0 ) return "";
}
if( sEnd == "" )
pos_end = sOrg.length;
else{
pos_end = Pos(sOrg, sEnd, pos_start+sStart.length, nStart);
if( pos_end < 0 ) return "";
}
return sOrg.substring(pos_start+sStart.length, pos_end);
}
/****************************************************************************************** * 기능 : 시작글자와 끝글자에 해당하는 글자의 사이에 있는 가운데 글자를 대소문자 구별없이 찾는다. ( 예 : aaBBbbccdd에서 bb, dd사이의 글자 bbcc를 찾는다 ) * 인자 : 1. sOrg : 원래 문자열( 예 : "aaBBbbccdd" ) 2. sStart : 찾고자 하는 시작 문자열(옵션 : Default = "")(예 : "bb" ) (만일, sStart=""이면 nStart부터 sEnd까지의 모든 문자열이 return된다.) 3. sEnd : 찾고자 하는 끝 문자열 (옵션 : Default = "")( 예 : "dd" ) (만일, sEnd=""이면 sStart부터 문자열의 끝까지의 모든 문자열이 return된다.) 4. nStart : 검색 시작위치 (옵션 : Default=0) ( 예 : 1 ) * 리턴 : 성공 = 가운데 글자 ( 예 : "bbcc" ) 실패 = "" * 예문 : *****************************************************************************************/
function fn_MidCase(sOrg, sStart, sEnd, nStart)
{
var pos_start, pos_end, ret_str;
if( fn_IsNull(sOrg) ) return "";
if( fn_IsNull(sStart) ) sStart = "";
if( fn_IsNull(sEnd) ) sEnd = "";
if( fn_IsNull(nStart) ) nStart = 0;
if( sStart == "" )
pos_start = nStart;
else{
pos_start = PosCase(sOrg, sStart, nStart);
if( pos_start < 0 ) return "";
}
if( sEnd == "" )
pos_end = sOrg.length;
else {
pos_end = PosCase(sOrg, sEnd, pos_start+sStart.length, nStart);
if( pos_end < 0 ) return "";
}
return sOrg.substring(pos_start+sStart.length, pos_end);
}
/****************************************************************************************** * 기능 : Mid()함수와 동일하나 Return을 Array로 한다. * 인자 : 1. sOrg : 원래 문자열( 예 : "aaBBbbccdd" ) 2. sStart : 찾고자 하는 시작 문자열(옵션 : Default = "")(예 : "bb" ) (만일, sStart=""이면 nStart부터 sEnd까지의 모든 문자열이 return된다.) 3. sEnd : 찾고자 하는 끝 문자열 (옵션 : Default = "")( 예 : "dd" ) (만일, sEnd=""이면 sStart부터 문자열의 끝까지의 모든 문자열이 return된다.) 4. nStart : 검색 시작위치 (옵션 : Default=0) ( 예 : 1 ) * 리턴 : - 성공 Array[0] = 가운데 글자 ( 예 : "cc" ) Array[1] = sStart의 위치 ( 예 : 4 ) Array[2] = sEnd의 위치 ( 예 : 8 ) - 실패 Array[0] = "" Array[1] = -1 Array[2] = -1 * 예문 : * 참고 : sStart, sEnd의 위치를 알아내려면 다시한번 찾아야 하므로 속도 때문에 만듬 *****************************************************************************************/
function fn_AMid(sOrg, sStart, sEnd, nStart)
{
var pos_start, pos_end, ret_str;
var arr = new Array("",-1,-1);
if( fn_IsNull(sOrg) ) return "";
if( fn_IsNull(sStart) ) sStart = "";
if( fn_IsNull(sEnd) ) sEnd = "";
if( fn_IsNull(nStart) ) nStart = 0;
if( sStart == "" )
pos_start = nStart;
else{
pos_start = Pos(sOrg, sStart, nStart);
if( pos_start < 0 ) return arr;
}
if( sEnd == "" )
pos_end = sOrg.length;
else {
pos_end = Pos(sOrg, sEnd, pos_start+sStart.length, nStart);
if( pos_end < 0 ) return arr;
}
arr[0] = sOrg.substring(pos_start+sStart.length, pos_end);
arr[1] = pos_start;
arr[2] = pos_end;
return arr;
}
/****************************************************************************************** * 기능 : MidCase()함수와 동일하나 Return을 Array로 한다. * 인자 : 1. sOrg : 원래 문자열( 예 : "aaBBbbccdd" ) 2. sStart : 찾고자 하는 시작 문자열(옵션 : Default = "")(예 : "bb" ) (만일, sStart=""이면 nStart부터 sEnd까지의 모든 문자열이 return된다.) 3. sEnd : 찾고자 하는 끝 문자열 (옵션 : Default = "")( 예 : "dd" ) (만일, sEnd=""이면 sStart부터 문자열의 끝까지의 모든 문자열이 return된다.) 4. nStart : 검색 시작위치 (옵션 : Default=0) ( 예 : 1 ) * 리턴 : - 성공 Array[0] = 가운데 글자 ( 예 : "bbcc" ) Array[1] = sStart의 위치 ( 예 : 2 ) Array[2] = sEnd의 위치 ( 예 : 8 ) - 실패 Array[0] = "" Array[1] = -1 Array[2] = -1 * 예문 : * 참고 : sStart, sEnd의 위치를 알아내려면 다시한번 찾아야 하므로 속도 때문에 만듬 *****************************************************************************************/
function fn_AMidCase(sOrg, sStart, sEnd, nStart)
{
var pos_start, pos_end, ret_str;
var arr = new Array("",-1,-1);
if( fn_IsNull(sOrg) ) return "";
if( fn_IsNull(sStart) ) sStart = "";
if( fn_IsNull(sEnd) ) sEnd = "";
if( fn_IsNull(nStart) ) nStart = 0;
if( sStart == "" )
pos_start = nStart;
else {
pos_start = PosCase(sOrg, sStart, nStart);
if( pos_start < 0 ) return arr;
}
if( sEnd == "" )
pos_end = sOrg.length;
else{
pos_end = PosCase(sOrg, sEnd, pos_start+sStart.length, nStart);
if( pos_end < 0 ) return arr;
}
arr[0] = sOrg.substring(pos_start+sStart.length, pos_end);
arr[1] = pos_start;
arr[2] = pos_end;
return arr;
}
|