Проблема с левой функцией ASP - PullRequest
0 голосов
/ 13 марта 2011

У меня есть этот код и что-то странное происходит, когда я его запускаю.

У меня есть номер поля от 101512 до 101520. Я использовал ЛЕВУЮ функцию, чтобы избавиться от последних двух цифр и оставить 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 ]

6 голосов
/ 13 марта 2011

Я предполагаю, что Request("field") может возвращать строку, подобную следующей:

101520, 101521, 101522

Обратите внимание на пробел после каждой запятой. Таким образом, когда вы применяете Left() и печатаете значение в вывод HTML, вы не замечаете пробел, а видите только три цифры как пробел, считающийся первой цифрой

Чтобы понять, имеет ли это место, нужно изменить код на следующий:

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

Таким образом, все пробелы вокруг значения удаляются до применения Left().

1 голос
/ 17 марта 2011

Правильный способ перебрать элемент запроса "multi value" на самом деле:

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

Это будет повторять фактические значения без использования split вообще ..

...