数组中有空,怎么判断实际长度

ewde43 2014-11-21 02:51:52
From中有10行,用户填写数据传送过来的行数不确定,所以就会有的行传递过来是空值

Str="a,b,c,d,e,f ,g ,h ,i ,g ,k" 或

Str="a,b,c,d, , , , , , ,"

如果用
arr=split(Str,",")
Response.Write(uBound(arr)+1)

这样无论数组中是否有空值,都会显示10

怎么判断传递过来的非空的数组的长度

或者 象这样的数组添加数据的时候,一般用什么方法。
...全文
588 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 11 楼 ewde43 的回复:
[quote=引用 10 楼 chinmo 的回复:] [quote=引用 8 楼 ewde43 的回复:] [quote=引用 6 楼 slwsss 的回复:]
<%
str="1,2,3,4,,,,,5,"
arr=split(Str,",")
narr=Array()
for i=0 to uBound(arr)
if(arr(i)<>"")then 
redim Preserve narr(uBound(narr)+1)
narr(uBound(narr))=arr(i)
end if
next
response.write(join(narr,","))
%>
谢谢,如果有10几个变量,每个的长度都一样,是每个都要这样来一次? 还是只用计算其中一个的长度,然后循环插入的时候就取这个数值就行了,其它就不管了[/quote] 写这么一个函数,对传过来的都使用就可以了[/quote] 谢谢,为什么我POST过来的文本框中,取出的数组每个都有个空格如: str="1, 2, 3, 4, , , , , ," 这是什么情况造成的[/quote] 这个要具体看你的代码才能知道原因
ewde43 2014-11-21
  • 打赏
  • 举报
回复
引用 10 楼 chinmo 的回复:
[quote=引用 8 楼 ewde43 的回复:] [quote=引用 6 楼 slwsss 的回复:]
<%
str="1,2,3,4,,,,,5,"
arr=split(Str,",")
narr=Array()
for i=0 to uBound(arr)
if(arr(i)<>"")then 
redim Preserve narr(uBound(narr)+1)
narr(uBound(narr))=arr(i)
end if
next
response.write(join(narr,","))
%>
谢谢,如果有10几个变量,每个的长度都一样,是每个都要这样来一次? 还是只用计算其中一个的长度,然后循环插入的时候就取这个数值就行了,其它就不管了[/quote] 写这么一个函数,对传过来的都使用就可以了[/quote] 谢谢,为什么我POST过来的文本框中,取出的数组每个都有个空格如: str="1, 2, 3, 4, , , , , ," 这是什么情况造成的
  • 打赏
  • 举报
回复
引用 8 楼 ewde43 的回复:
[quote=引用 6 楼 slwsss 的回复:]
<%
str="1,2,3,4,,,,,5,"
arr=split(Str,",")
narr=Array()
for i=0 to uBound(arr)
if(arr(i)<>"")then 
redim Preserve narr(uBound(narr)+1)
narr(uBound(narr))=arr(i)
end if
next
response.write(join(narr,","))
%>
谢谢,如果有10几个变量,每个的长度都一样,是每个都要这样来一次? 还是只用计算其中一个的长度,然后循环插入的时候就取这个数值就行了,其它就不管了[/quote] 写这么一个函数,对传过来的都使用就可以了
  • 打赏
  • 举报
回复

function cleartrim(str,vReg,restr)
set reg=new RegExp
reg.pattern=vReg
reg.IgnoreCase = True
reg.Global = True
str=reg.replace(str,restr)
cleartrim=str
end function
str=",1,2,3,4,,,,,5,"
str=cleartrim(cleartrim(str,",[\s,]*,",","),"^,|,$","")
response.Write str
可以用这种方法删除多余的
ewde43 2014-11-21
  • 打赏
  • 举报
回复
引用 6 楼 slwsss 的回复:
<%
str="1,2,3,4,,,,,5,"
arr=split(Str,",")
narr=Array()
for i=0 to uBound(arr)
if(arr(i)<>"")then 
redim Preserve narr(uBound(narr)+1)
narr(uBound(narr))=arr(i)
end if
next
response.write(join(narr,","))
%>
谢谢,如果有10几个变量,每个的长度都一样,是每个都要这样来一次? 还是只用计算其中一个的长度,然后循环插入的时候就取这个数值就行了,其它就不管了
ewde43 2014-11-21
  • 打赏
  • 举报
回复
引用 5 楼 baidu_23397487 的回复:
我跟你说一下思路吧 首先把传递过来的字符串分割成数组 然后用一个for循环对字符数组进行遍历,如果为空则丢弃 str="a,b,c,d,,,,,,," str1=split(str,",") str2="" for i=o to str1.length-1 if str1(i) <> "" then str2=str2+str1(i)+"," end if next 然后你再读取str2就没有为空的元素了
谢谢,如果有10几个变量,每个都要这样来一次? 还是只用计算其中一个的长度,然后循环插入的时候就取这个数值就行了,其它就不管了
slwsss 2014-11-21
  • 打赏
  • 举报
回复
<%
str="1,2,3,4,,,,,5,"
arr=split(Str,",")
narr=Array()
for i=0 to uBound(arr)
if(arr(i)<>"")then 
redim Preserve narr(uBound(narr)+1)
narr(uBound(narr))=arr(i)
end if
next
response.write(join(narr,","))
%>
圆脸猫C 2014-11-21
  • 打赏
  • 举报
回复
我跟你说一下思路吧 首先把传递过来的字符串分割成数组 然后用一个for循环对字符数组进行遍历,如果为空则丢弃 str="a,b,c,d,,,,,,," str1=split(str,",") str2="" for i=o to str1.length-1 if str1(i) <> "" then str2=str2+str1(i)+"," end if next 然后你再读取str2就没有为空的元素了
ewde43 2014-11-21
  • 打赏
  • 举报
回复
引用 1 楼 slwsss 的回复:
for 循环查找不为空的数据
请slwsss帮忙写一段代码把 Str="a,b,c,d, , , , , , ," 这样的数组 转化成Str="a,b,c,d"
ewde43 2014-11-21
  • 打赏
  • 举报
回复
引用 2 楼 xuzuning 的回复:
拆分成数组,在循环里对非空元素计数
请版主帮忙写一段代码把 Str="a,b,c,d, , , , , , ," 这样的数组 转化成Str="a,b,c,d"
xuzuning 2014-11-21
  • 打赏
  • 举报
回复
拆分成数组,在循环里对非空元素计数
slwsss 2014-11-21
  • 打赏
  • 举报
回复
for 循环查找不为空的数据

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧