2011-03-13 94 views
0

我有这个代码,当我运行它时会发生奇怪的事情。ASP左功能问题

我有像101512到101520的字段号。我用LEFT函数来摆脱最后两位数并保持1015.当我第一次运行循环函数时,它给了我1015,但对于其余的它给我101的它elminates最后一个数字是这样的:

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

结果

1015 
101 
101 
101 
... 

没有任何人有任何想法是怎么回事?

回答

6

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

101520, 101521, 101522 

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

有一件事要尝试查看是否属于这种情况将代码更改为以下:

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

这样应用Left()之前围绕价值的任何空格都被删除。

+0

这就是答案。谢谢 – Jay 2011-03-14 03:43:11

1

正确的方法来遍历“多值”要求的项目居然是:

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

这将迭代的实际值,而无需使用split所有..