ASP左功能问题

时间:2011-03-13 04:12:31

标签: vbscript asp-classic

我有这个代码,当我运行它时发生了一些奇怪的事情。

我的字段编号如101512到101520.我已经使用LEFT函数去除最后两位数并保留1015.当我为第一个运行循环函数时它给了我1015但是其余的它给出了我101它会像这样消灭最后一位数字:

d = Split(Request("field"),",")  
For i = 1 To UBound(d)  
  Responce.Write(Left(d(i),4))  
Next

结果

1015  
101  
101  
101  
...

有人知道发生了什么吗?

2 个答案:

答案 0 :(得分:6)

我的猜测是Request("field")可能会返回如下字符串:

101520, 101521, 101522

注意每个逗号后面的空格。因此,当您应用Left()并将值打印到HTML输出时,您没有注意到空格,但只看到三位数,因为空间计为第一位数

尝试查看是否是这种情况的一件事是将代码更改为以下内容:

Left(Trim(d(i)), 4)

这样,在应用Left()之前,会删除值周围的任何空格。

答案 1 :(得分:1)

迭代“多值”请求项的正确方法实际上是:

For i = 0 To Request("field").Count-1
   Response.Write(Request("field").Item(i) & "<br />")
Next

这将迭代实际值而不使用split ..