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>"
%>
---------------------------------------------------------------------------------------------------


[그림 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>"
%>
---------------------------------------------------------------------------------------------------


[그림 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>"
%>
---------------------------------------------------------------------------------------------------

[그림 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 인수는 필수 인수가 된다.
● 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>"

%>
---------------------------------------------------------------------------------------------------


[그림 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>"

%>
---------------------------------------------------------------------------------------------------


[그림 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>"
%>
---------------------------------------------------------------------------------------------------


[그림 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 %>
<%
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

스트링의 문자열에서 스트링의 왼쪽 즉 앞에 있는 공백 문자들을 삭제한다.

구문 : 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>"
%>
---------------------------------------------------------------------------------------------------


[그림 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)
%>
---------------------------------------------------------------------------------------------------


[그림 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
---------------------------------------------------------------------------------------------------
<%@ 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), " ", "&nbsp;") & 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
---------------------------------------------------------------------------------------------------
<%@ 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"

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)
%>
---------------------------------------------------------------------------------------------------


[그림 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!"
Response.Write UCase(strTemp)
%>
---------------------------------------------------------------------------------------------------


[그림 2-22] ucase.asp 실행 결과


'asp' 카테고리의 다른 글

ASP 기초 - 수학 연산자  (0) 2007.05.03
ASP 기초 - 날짜와 시간 함수  (0) 2007.05.03
Active Directory 컨트롤 모듈 - Jappill.ADHelper  (0) 2007.05.03
만료된 페이지 입니다..안나오게 하기  (0) 2007.05.03
Logging Utility  (0) 2007.05.03

+ Recent posts