기능 코드:
<%'** *** *********************************************** ****
'필터 배열 중복 함수 이름: array_no(cxstr1,cxstr2,cxstr3)
'cxstr1: 모든 문자열, 자동으로 인식
'cxstr2: cxstr1의 분할 기호.
'cxstr3: 결과의 특정 위치에서 문자열을 추출합니다. 0과 같으면 모두 반환하고, 배열 첨자보다 크면 마지막을 반환합니다.
'에 사용됩니다. 2차원 배열
'****** ************************************ *************
function array_no(cxstr1,cxstr2,cxstr3)
if len(cxstr3) > 0이면
IsNumeric(cxstr3)이 아니면
array_no = "죄송합니다. 매개변수 3의 유형은 숫자여야 합니다."
Exit Function
end if
else
array_no = "죄송합니다. 매개변수 3의 유형은 숫자여야 합니다."
종료 함수
end if
if isarray(cxstr1) then
array_no = "죄송합니다. 매개변수 1은 배열이 될 수 없습니다."
함수 종료
end if
if cxstr1 = "" 또는 isempty (cxstr1) then
array_no = "데이터 없음"
함수 종료
end if
ss = Split(cxstr1,cxstr2)
cxs=cxstr2&ss(0)&cxstr2
sss=cxs
m = 0에서 ubound(ss)로
cc = cxstr2&ss(m)&cxstr2
if instr(sss,cc)=0이면
sss = sss&ss(m)&cxstr2
end if
next
array_no = right(sss,len(sss)-len( cxstr2))
array_no = left(array_no,len(array_no)-len(cxstr2))
if cxstr3 < ;> 0이면
cx_sp = Split(array_no,cxstr2)
if cxstr3 > ; ubound(cx_sp)이면
array_no = cx_sp(ubound(cx_sp))
else
array_no = cx_sp (cxstr3)
end if
end if
end function%>
다음은 테스트 코드입니다.
<%s1 = "abc,aa,bb,cdef,bc,abcdef, hhgg,gggg,cde,edc"
s2 = "1,2,3,11,22,33,12, 13,14,11,33,333,14"
s3 = ""
s4 = "sdf,abc,12,2,2,abc"
s5 = Split(s4)
response.write "문자열이 문자인 경우:"&array_no(s1,",",0)&"< ;br>"
response.write "문자열이 숫자인 경우:"&array_no(s2,",",0)& "
"
response.write "문자열이 비어 있는 경우: " &array_no(s3,",",0)&"
"
response.write "문자열이 혼합된 경우: "&array_no(s4,",",0)&"
" >response.write "문자열이 배열인 경우: "&array_no(s5,",",0)&"
"
response.write "문자열이 알 수 없는 변수인 경우:"&array_no(s33, ",",0)&"
"
response.write "특정 비트를 추출할 때 아래 첨자를 초과하지 않는 경우: "&array_no(s1,",",2)&"
"
response.write "특정 비트를 추출할 때 첨자를 초과하는 경우: "&array_no(s1,",",200)&"< ;br>"%>
테스트 결과:
문자열이 문자인 경우 : abc,aa,bb,cdef,bc,abcdef,hhgg,gggg,cde,edc
문자열이 숫자인 경우: 1,2,3,11,22 ,33,12,13,14,333
문자열이 비어있는 경우: 데이터가 없습니다
문자열이 혼합되어 있는 경우: sdf,abc,12,2
문자열이 배열인 경우: 죄송합니다. 매개변수 1은 불가능합니다 배열
문자열이 있는 경우 알 수 없는 변수: 데이터가 없습니다
특정 비트 추출 시 첨자를 초과하지 않은 경우: bb
특정 비트 추출 시 첨자를 초과한 경우: edc
Script House의 향상된 버전:
일반적인 배열 오류 해결
코드 복사 코드는 다음과 같습니다.
<%
'**************************************** ***** ******************
'필터 배열 중복 함수 이름: array_no(cxstr1,cxstr2,cxstr3)
'cxstr1: 임의의 문자열, 자동 인식
'cxstr2: cxstr1의 분할 기호.
'cxstr3: 결과의 특정 위치에서 문자열을 추출합니다. 0과 같으면 모두 반환하고, 배열 첨자보다 크면 마지막을 반환합니다.
'에 사용됩니다. 2차원 배열
'****** ************************************ *************
function array_no(cxstr1,cxstr2,cxstr3)
if len(cxstr3) > 0이면
IsNumeric(cxstr3)이 아니면
array_no = "죄송합니다. 매개변수 3의 유형은 숫자여야 합니다."
Exit Function
end if
else
array_no = "죄송합니다. 매개변수 3의 유형은 숫자여야 합니다."
종료 함수
end if
if isarray(cxstr1) then
array_no = "죄송합니다. 매개변수 1은 배열이 될 수 없습니다."
함수 종료
end if
if cxstr1 = "" 또는 isempty (cxstr1) then
array_no = "데이터 없음"
함수 종료
end if
do while instr(cxstr1,",,")>0
cxstr1=replace(cxstr1," ,,",",")
루프
if right(cxstr1, 1)="," then
cxstr1=left(cxstr1,len(cxstr1)-1)
end if
ss = 분할(cxstr1,cxstr2)
cxs=cxstr2&ss(0)&cxstr2
sss=cxs
for m = 0에서 ubound(ss)
cc = cxstr2&ss(m)&cxstr2
if instr(sss,cc)=0이면
sss = sss&ss(m)&cxstr2
end if
next
array_no = right(sss,len(sss)-len(cxstr2)) array_no = cx_sp(ubound(cx_sp))
else
array_no = cx_sp(cxstr3)
end if
end if
end function
s1 = "abc,aa,bb,cdef,bc,abcdef,hhgg,gggg,cde,edc, 333,,,,,333,7,,,,"
s2 = "1,2,3,11, 22,33,12,13,14,11,33,333,14,333,,,,,333, 7,,,,"
s3 = ""
s4 = "sdf,abc,12,2,2 ,abc,333,,,,,333,7,,,,"
s5 = Split(s4)
response.write "문자열이 문자인 경우:"&array_no(s1,",",0 )&"
"
response.write "문자열이 숫자인 경우:"&array_no (s2,",",0)&"
response.write "문자열이 숫자인 경우 비어 있음:"&array_no(s3,",",0)&"
"
response.write "문자열이 혼합 문자열인 경우:"&array_no(s4,",",0)&"< ;br>"
response.write "문자열이 배열인 경우:"&array_no(s5,",", 0)&"
"
response.write "문자열이 알 수 없는 변수인 경우 :"&array_no(s33,",",0)&"
"
response.write "특정 숫자 추출 하나의 숫자를 추출할 때 아래 첨자를 초과하지 않습니다: "&array_no(s1,",", 2)&"
"
response.write "특정 숫자가 추출되면 아래 첨자가 초과됩니다: "&array_no(s1 ,",",200)&"
% >
주로 판단 추가
코드 복사
if right(cxstr1,1 )="," then
cxstr1=left(cxstr1,len(cxstr1)-1)
end if