【问题标题】:ASP Left function issueASP Left 函数问题
【发布时间】:2011-11-19 10:49:50
【问题描述】:

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

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

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

结果

1015  
101  
101  
101  
...

有人知道发生了什么吗?

【问题讨论】:

    标签: vbscript asp-classic


    【解决方案1】:

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

    101520, 101521, 101522
    

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

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

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

    这样,在应用 Left() 之前,值周围的所有空格都会被删除。

    【讨论】:

      【解决方案2】:

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

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

      这将在不使用split 的情况下迭代实际值..

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-02
        • 2022-01-22
        • 2021-08-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多