>  기사  >  웹 프론트엔드  >  ASP 필터 배열 중복 데이터 기능(향상 버전)_javascript 기술

ASP 필터 배열 중복 데이터 기능(향상 버전)_javascript 기술

WBOY
WBOY원래의
2016-05-16 18:25:581059검색

기능 코드:

코드 복사 코드는 다음과 같습니다:

<%'** *** *********************************************** ****
'필터 배열 중복 함수 이름: 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)&"
% >


주로 판단 추가



코드 복사
코드는 다음과 같습니다. while instr(cxstr1,",,")>0 cxstr1=replace(cxstr1,",,", ",") 루프
if right(cxstr1,1 )="," then
cxstr1=left(cxstr1,len(cxstr1)-1)
end if

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.