17 중 1 2010-03-02 오후 1:50 lecture Home > ASP 입문강좌 > ASP 기초정리 ASP 기초 기초정리 - 황재선님제공 강좌최초작성일 : 2000 년 x 월 x 일강좌최종수정일 : 2001 년 7 월 17 일 작성자 : Helios7( 황재선 ) : http://www.neovis.pe.kr 편집자 : Taeyo( 김태영 ) 강좌제목 : ASP 기초 - 스트링함수 스트링함수 4.1 스트링 ASP 코드작성시가장많이사용되는함수들이바로문자와관련된스트링함수들일것이다. 특정문자열에서자기가원하는내용을검색한다든지, 문자들을추출하여연산에사용한다든지이런일련의작업들이스트링함수를기본으로하고있다. 다음은 VB 스크립트에있는여러가지스트링함수들이다. 1) FormatCurrency 시스템제어판에정의된통화기호를사용하여통화값으로서식화된식을반환한다. 구문 FormatCurrency(Expression[,NumDigitsAfterDecimal [,IncludeLeadingDigit [,UseParensForNegativeNumbers [,GroupDigits]]]]) Expression : 필수요소이다. 실제통화값으로서식화할식을나타낸다. NumDigitsAfterDecimal : 선택요소이다. 소수를표시할자릿수를나타내는숫자값이다. 기본값은 1 로컴퓨터의국가별설정값이사용됨을나타낸다. IncludeLeadingDigit : 선택요소이다. 지수값에선행 0 이표시되는지의여부를나타내는 Tristate 상수이다. 값에대한설명은아래표를참고하기바란다. UseParensForNegativeNumbers : 선택요소이다. 음수를괄호로묶을것인지를나타내는 Tristate 상수이다. 값에대한설명은아래표를참조하기바란다. GroupDigits : 선택요소이다. 시스템의국가별설정에지정된그룹구분기호를사용하여숫자들을그룹화하는지를나타내는 Tristate 상수이다. 값에대한설명은아래표를참조하기바란다. 상수값설명 TristateTrue -1 참 TristateFalse 0 거짓 TristateUseDefault -2 컴퓨터의국가별설정값을사용한다. formatcurrency.asp @ Language=VBScript Response.Write FormatCurrency(100000) & "<BR>" Response.Write FormatCurrency(100000,5) & "<BR>" Response.Write FormatCurrency(-100000,,, -1) & "<BR>"
17 중 2 2010-03-02 오후 1:50 [ 그림 1-1] formatcurrency.asp 실행결과 2) FormatDateTime 날짜와시간으로서식화된식을반환한다. 구문 : FormatDateTime(Date[,NamedFormat]) Date : 필수요소이다. 서식화할날짜식을나타낸다. NamedFormat : 선택요소이다. 사용되는날짜 / 시간서식을나타내는숫자값이다. 이값을생략하면 vbgeneraldate 가사용된다. 상수값설명 vbgeneraldate 0 날짜및시간을표시한다. 날짜부분이있으면간단하게표시날짜로표시한다. 시간부분이있으면자세하게표시시간형식으로표시한다. 날짜와시간이모두있으면둘다표시된다. vblongdate 1 시스템의국가별설정에지정된자세하게표시날짜서식을사용하여날짜를표시한다. vbshortdate 2 시스템의국가별설정에지정된간단하게표시날짜서식을사용하여날짜를표시한다. vblongtime 3 시스템의국가별설정에지정된시간서식을사용하여시간을표시한다. vbshorttime 4 24시간서식 (hh:mm) 을사용하여시간을표시한다. formatdatetime.asp @ Language=VBScript Response.Write FormatDateTime(Now, 0) & "<BR>" Response.Write FormatDateTime(Now, 1) & "<BR>" Response.Write FormatDateTime(Now, 2) & "<BR>" Response.Write FormatDateTime(Now, 3) & "<BR>" Response.Write FormatDateTime(Now, 4) & "<BR>"
17 중 3 2010-03-02 오후 1:50 [ 그림 1-2] formatdatetime.asp 실행결과 3) FormatNumber 숫자로서식화된식을반환한다. 구문 : FormatNumber(Expression[,NumDigitsAfterDecimal [,IncludeLeadingDigit [,UseParensForNegativeNumbers [,GroupDigits]]]]) Expression : 필수요소이다. 서식화할식을나타낸다. NumDigitsAfterDecimal : 선택요소이다. 소수를나타낼자릿수를나타내는숫자값이다. 기본값은 1 로시스템의국가별설정값이사용됨을나타낸다. IncludeLeadingDigit : 선택요소이다. 지수값에선행 0 이표시되는지의여부를나타내는 Tristate 상수이다. 값에대한설명은아래표를참조하라. UseParensForNegativeNumbers : 선택요소이다. 음수를괄호로묶을것인지를나타내는 Tristate 상수이다. 값에대한설명은아래표를참조하라. GroupDigits : 선택요소이다. 컴퓨터국가별설정에서지정된그룹구분기호를사용하여숫자들을그룹화하는지를나타내는 Tristate 상수이다. 값에대한설명은아래표를참조하라. 상수값설명 TristateTrue -1 참 TristateFalse 0 거짓 TristateUseDefault -2 시스템의국가별설정값을사용합니다. formatnumber.asp @ Language=VBScript Response.Write FormatNumber(100000) & "<BR>" Response.Write FormatNumber(100000,5) & "<BR>" Response.Write FormatNumber(-100000,,, -1) & "<BR>"
17 중 4 2010-03-02 오후 1:50 [ 그림 1-3] formatnumber.asp 실행결과 4) FormatPercent 뒤에 % 문자가붙는백분율 (100 이곱해짐 ) 로서식화된식을반환한다. 구문 : FormatPercent(Expression[,NumDigitsAfterDecimal [,IncludeLeadingDigit [,UseParensForNegativeNumbers [,GroupDigits]]]]) FormatPercent 의구성요소는 FormatNumber 와동일하다. formatpercent.asp @ Language=VBScript Response.Write FormatNumber(0.7235) & "<BR>" Response.Write FormatNumber(0.7235,5) & "<BR>" Response.Write FormatNumber(-0.7235,,, -1) & "<BR>" [ 그림 1-4] formatpercent.asp 실행결과 5) InStr 한문자열안에특정문자열이처음으로나타난위치를정수값으로반환한다. 구문 : InStr([start, ]string1, string2[, compare]) start : 선택요소이다. 검색할때시작위치를의미하는수식이다. 만일지정되지않으면첫문자에서검색을시작한다. start 가 Null 값을포함하면오류가발생하고 Compare 값이지정되면 start 인수는필수인수가된다.
17 중 5 2010-03-02 오후 1:50 String1 : 필수요소이다. 검색되는문자식이다. String2 : 필수요소이다. 찾을문자식이다. Compare : 선택요소이다. 문자열비교형식을지정한다. Compare 인수는 0, 1, 2 로지정하거나생략할수있다. 기본값인 0 으로지정하면이진비교가수행되고 1 로지정하면대 / 소문자구분하여문자를비교한다. 2 로지정하면사용자데이터베이스에기록된정보에근거하여비교가수행된다 (Microsoft Access 에한함 ). Compare 값이 Null 이면오류가발생하고 Compare 값이지정되지않으면 Option Compare 설정값에따라비교형식이결정된다. Compare 인수 상수값설명 vbbinarycompare 0 이진비교를수행한다. vbtextcompare 1 텍스트를비교한다. 반환값 경우 InStr 함수의결과 string1 의길이가 0 인경우 0 string1 이 Null 인경우 Null string2 가 0 인경우 start string2 가 Null 인경우 Null string2 가없는경우 0 string1 에 string2 가있는경우 string1 에서의일치하는해당위치 start > Len(string2) 0 instr.asp @ Language=VBScript SearchString ="AAbAAbAABAAB" ' 검색할문자열 SearchChar = "B" ' "B" 검색. ' 4 가있는위치에서텍스트비교시작. 6 을반환합니다. MyPos = Instr(4, SearchString, SearchChar, 1) Response.Write MyPos & "<BR>" ' 1 이있는위치에서 2 진비교시작. 9 를반환합니다. MyPos = Instr(1, SearchString, SearchChar, 0) Response.Write MyPos & "<BR>" MyPos = Instr(SearchString, SearchChar) ' Returns 9. Response.Write MyPos & "<BR>" MyPos = Instr(1, SearchString, "W") Response.Write MyPos & "<BR>"
17 중 6 2010-03-02 오후 1:50 [ 그림 1-5] instr.asp 실행결과 6) InStrB 바이트데이터를포함하고있는스트링내에서만나는첫번째서브스트링의바이트위치를나타내는정수값을반환한다. 바이트의반환만제외하고 InStr 과사용법이동일하다. 7) InStrRev 한문자열이다른문자열에나타나는위치를문자열끝에서반환한다. 구문 : InStrRev(string1, string2[, start[, compare]]) 구문의사용은 InStr 과동일하다. insrtrev.asp @ Language=VBScript SearchString ="AAbAAbAABAAB" ' 검색할문자열 SearchChar = "B" ' "B" 검색. MyPos = InStrRev(SearchString, SearchChar, 10, 0) Response.Write MyPos & "<BR>" MyPos = InStrRev(SearchString, SearchChar, -1, 1) Response.Write MyPos & "<BR>" MyPos = InStrRev(SearchString, SearchChar, 8) Response.Write MyPos & "<BR>" MyPos = InStrRev(SearchString, "W") Response.Write MyPos & "<BR>"
17 중 7 2010-03-02 오후 1:50 [ 그림 1-6] instrrev.asp 실행결과 8) Join 배열에포함되어있는여러하위문자열을결합하여만든문자열을반환한다. 구문 : Join(list[, delimiter]) list : 필수적인인수로결합할하위문자열을포함하는 1 차원배열이다. delimiter : 선택적인인수로반환되는문자열의하위문자열을분리하는데사용하는문자이다. 생략하면공백문자 (" ") 를사용한다. delimiter 가길이가 0 인문자열이면목록에있는모든항목을구분기호없이연결한다. join.asp @ Language=VBScript Dim mylanguage(5) mylanguage(0) = "ASP" mylanguage(1) = "Visual Basic" mylanguage(2) = "PHP" mylanguage(3) = "Delphi" mylanguage(4) = "JSP" mylanguage(5) = "C#" strlanguage = Join(myLanguage, "---") Response.Write strlanguage & "<BR>" strlanguage = Join(myLanguage) Response.Write strlanguage & "<BR>"
17 중 8 2010-03-02 오후 1:50 [ 그림 1-7] join.asp 실행결과 9) LCase 스트링에있는모든문자들을소문자로변경하는함수이다. 구문 : LCase(string) string : 소문자로변경하고자하는문자열 lcase.asp @ Language=VBScript strtemp = "Hello!! Active Server Page~" Response.Write LCase(strTemp) [ 그림 1-8] lcase.asp 실행결과 10) Left 문자열의왼쪽에서설정하는길이만큼의문자들을반환한다. 구문 : Left(string, length) string : 반환하고자하는문자열 length : 왼쪽에서이동하고자하는문자열의길이 left.asp @ Language=VBScript
17 중 9 2010-03-02 오후 1:50 strtemp = "Hello! Active Server Page~" Response.Write Left(strTemp, 15) [ 그림 1-9] left.asp 실행결과 11) Len 스트링의문자열의길이를반환한다. 구문 : Len(string) len.asp @ Language=VBScript strtemp = "Hello! Active Server Page~" Response.Write Len(strTemp) & "<BR>" strtemp = " 안녕하세요! ASP 입니다." Response.Write Len(strTemp) & "<BR>" [ 그림 1-10] len.asp 실행결과 12) LTrim 스트링의문자열에서스트링의왼쪽즉앞에있는공백문자들을삭제한다.
17 중 10 2010-03-02 오후 1:50 구문 : LTrim(string) ltrim.asp @ Language=VBScript strtemp = " Hello! Active Server Page~" Response.Write strtemp & "<BR>" Response.Write LTrim(strTemp) [ 그림 1-11] ltrim.asp 공백문자의출력예제에서공백을제거한것과제거하지않은문자의결과가동일하게출력된다. 이것은 HTML 이공백문자를지원하지않기때문이다. 그러나코드상에서의비교에서는필요한요소이니공백제거함수를적절히사용하도록해야하겠다. 13) Mid 스트링의문자열에서특정지점부터지정된길이만큼의문자열을반환한다. 구문 : Mid(string, start[, length]) string : 반환하고자하는문자열 start : 문자를반환할때의특정시작위치 length : 선택인수로서반환하고자하는문자의길이이다. 생략되면문자열의마지막까지반환한다. mid.asp @ Language=VBScript strtemp = "Hello! Active Server Page~" Response.Write Mid(strTemp,5,10) & "<BR>" Response.Write Mid(strTemp,5) & "<BR>"
17 중 11 2010-03-02 오후 1:50 [ 그림 1-12] mid.asp 실행결과 14) Replace 지정한하위문자열을지정한횟수만큼다른하위문자열로바꾼문자열을반환한다. 구문 : Replace(expression, find, replacewith[, start[, count[, compare]]]) expression : 필수적인인수로바꿀하위문자열이들어있는문자식이다. find : 필수적인인수로찾을하위문자열이다. replacewith : 필수적인인수로바꿀하위문자열이다. start : 선택적인인수로 expression 에서의하위문자열검색을시작하는위치이다. 생략하면 1 로간주한다. 반드시 count 와함께사용해야한다. count : 선택적인인수로하위문자열의바꾸기횟수이다. 생략하면기본값이 -1 이되며해당하는문자열을모두바꾼다. 반드시 start 과함께사용해야한다. compare 선택적인인수로사용할하위문자열비교형식을나타내는숫자값이다. 그값에대해서는아래의표를참조하라. 생략하면기본값은 0 이되며이진비교를수행한다. 상수값설명 vbbinarycompare 0 이진비교를실행한다. vbtextcompare 1 텍스트비교를실행한다. replace.asp @ Language=VBScript strtemp ="AAbAAbAABAAB" Response.Write Replace(strTemp, "b", "O") & "<BR>" Response.Write replace(strtemp, "b", "O", 3, -1, 1)
17 중 12 2010-03-02 오후 1:50 [ 그림 1-13] replace.asp 실행결과 15) Right 문자열의오른쪽부터정해진수만큼의문자를반환한다. 구문 : Right(string, length) right.asp @ Language=VBScript strtemp = "Hello! Active Server Page~" Response.Write strtemp & "<BR>" Response.Write Right(strTemp, 1) & "<BR>" Response.Write Right(strTemp, 7) & "<BR>" Response.Write Right(strTemp, 15) & "<BR>" Response.Write Right(strTemp, 30) & "<BR>" [ 그림 1-14] right.asp 실행결과 16) RTrim 스트링의문자열에서스트링의오른쪽즉뒤에있는공백문자들을삭제한다. 구문 : RTrim(string) rtrim.asp
17 중 13 2010-03-02 오후 1:50 @ Language=VBScript strtemp = "Hello! Active Server Page~ " Response.Write RTrim(strTemp) [ 그림 1-15] rtrim.asp 17) Space 지정된수만큼의공백이들어있는문자열을반환한다. 구문 : Space(number) space.asp @ Language=VBScript strtemp = "Hello! Active Server Page~" Response.Write strtemp & replace(space(10), " ", " ") & strtemp 18) Split 지정한개수의하위문자열을포함하는 0 기준 1 차원배열을반환한다. 구문 : Split(expression[, delimiter[, number[, compare]]]) expression : 필수적인인수로하위문자열과구분기호를포함하는문자식이다. expression 이길이가 0 인문자열이면 Split 는빈배열, 즉구성요소와데이터가없는배열을반환한다. delimiter : 선택적인인수로하위문자열의한계를식별하는데사용하는문자열문자이다. 생략하면공백문자 (" ") 를구분기호로간주한다. delimiter 의길이가 0 인문자열이면전체 expression 문자열을포함하는단일요소배열을반환한다. number : 선택적인인수로반환할하위문자열의수이다. -1 은모든하위문자열을반환한다는것을나타낸다. compare : 선택적인인수로사용할하위문자열비교형식을나타내는숫자값이다. 그값에대해서는아래의표를참조하라. 상수값설명 vbbinarycompare 0 이진비교를실행한다. vbtextcompare 1 텍스트비교를실행한다. split.asp
17 중 14 2010-03-02 오후 1:50 @ Language=VBScript strtemp = "Hello, Active, Server, Page!" arrtemp = Split(strTemp, ",") Response.Write strtemp & "<BR>" Response.Write arrtemp(0) & "<BR>" Response.Write arrtemp(1) & "<BR>" Response.Write arrtemp(2) & "<BR>" Response.Write arrtemp(3) & "<BR>" [ 그림 1-17] split.asp 실행결과 19) StrComp 문자열비교의결과를나타내는값을반환한다. 구문 : StrComp(string1, string2[, compare]) string1 : 필수적인인수로유효한문자식이다. string2 : 필수적인인수로유효한문자식이다. compare : 선택적인인수로문자열을평가하는데사용할비교형식을나타내는숫자값이다. 생략하면이진비교를실행한다. 그값에대해서는아래의표를참조하라. 상수값설명 vbbinarycompare 0 이진비교를실행한다. vbtextcompare 1 텍스트비교를실행한다. 반환값 경우 StrComp 함수의결과 string1 이 string2 보다작은경우 -1 string1 이 string2 와같은경우 0 string1 이 string2 보다큰경우 1 string1 이나 string2 가 Null 인경우 Null strcomp.asp @ Language=VBScript strcomp1 = "abcde" strcomp2 = "ABCDE"
17 중 15 2010-03-02 오후 1:50 Response.Write StrComp(strComp1, strcomp2) & "<BR>" Response.Write StrComp(strComp2, strcomp1, 1) & "<BR>" Response.Write StrComp(strComp2, strcomp1, 0) & "<BR>" 20) String 지정한길이의반복되는문자열을반환한다. 구문 : String(number, character) number : 반환할문자열의길이이다. number 에 Null 이있으면 Null 을반환한다. character : 반환할문자열을구성하는데사용할첫째문자가있는문자나문자식을지정하는문자코드이다. character 에 Null 이있으면 Null 을반환한다. string.asp @ Language=VBScript strtemp = "Hello, Active, Server, Page!" Response.Write String(10, "*") & strtemp & String(10, "*") & "<BR>" Response.Write String(10, 42) & strtemp & String(10, 42) & "<BR>" [ 그림 1-19] string.asp 실행결과 21) StrReverse 지정한문자열의순서가거꾸로된문자열을반환한다. 구문 : StrReverse(string1) strreverse.asp @ Language=VBScript strtemp = "Hello, Active, Server, Page!" Response.Write StrReverse(strTemp)
17 중 16 2010-03-02 오후 1:50 [ 그림 1-20] strreverse.asp 실행결과 22) Trim 문자열의앞뒤의공백문자를제거하는함수이다. 구분 : Trim(string) trim.asp @ Language=VBScript strtemp = " Hello, Active, Server, Page! " Response.Write Trim(strTemp) [ 그림 1-21] trim.asp 23) UCase 스트링문자열에포함된모든문자를대문자로변경하는함수이다. 구문 : UCase(string) ucase.asp @ Language=VBScript strtemp = "Hello! Active Server Page!"
17 중 17 2010-03-02 오후 1:50 Response.Write UCase(strTemp) [ 그림 2-22] ucase.asp 실행결과 Back