【问题标题】:How to split a string in classic asp如何在经典asp中拆分字符串
【发布时间】:2017-02-07 14:53:05
【问题描述】:

我正在尝试在经典的 asp 应用程序中拆分字符串,页面中有以下代码,但它似乎不起作用。还有另一个问题看起来相似但处理不同类型的问题,我已经去过那里的答案,但它们没有帮助。任何帮助将不胜感激。

<% 
Dim SelectedCountries,CitizenshipCountry, Count 
SelectedCountries = "IN, CH, US"    
CitizenshipCountry = Split(SelectedCountries,", ")
Count = UBound(CitizenshipCountry) + 1 
Response.Write(CitizenshipCountry[0])
Response.End
%>

【问题讨论】:

  • @Lankymart 对不起,但这似乎没有帮助,因此不得不发布一个新问题。
  • 您的Split() 正在工作并创建一个名为CitizenshipCountry 的数组。问题是您然后尝试计算字符串变量SelectedCountries 的元素数,而不是检查数组UBound(CitizenshipCountry)。此外,VBScript 数组使用像这样的大括号,而不是像其他语言那样使用方括号CitizenshipCountry(0)
  • @Lankymart 抱歉打错了,现在已经编辑了有问题的代码。好的将尝试大括号。
  • @Martha 好的,明白了,不过你在争论语义......让我问你这个,我在评论或答案中的代码是否使用 braces ({ }) 任何地方?....我不这么认为,无论如何感谢the edit

标签: arrays string vbscript split asp-classic


【解决方案1】:

你犯了几个错误,这就是为什么你没有得到预期的结果。

  1. 在检查 Array 的边界时,您需要指定 Array 变量,在这种情况下,由Split() 生成的变量是CitizenshipCountry

  2. 通过在括号中指定元素序号位置((...))而不是方括号([...])来访问数组元素。

试试这个:

<% 
Dim SelectedCountries, CitizenshipCountry, Count 
SelectedCountries = "IN, CH, US"    
CitizenshipCountry = Split(SelectedCountries,", ")
'Get the count of the array not the string.
Count = UBound(CitizenshipCountry)
'Use (..) when referencing array elements.
Call Response.Write(CitizenshipCountry(0))
Call Response.End()
%>

我喜欢做的是在调用UBound() 之前使用IsArray 检查变量是否包含有效数组以避免这些类型的错误。

<% 
Dim SelectedCountries, CitizenshipCountry, Count 
SelectedCountries = "IN, CH, US"    
CitizenshipCountry = Split(SelectedCountries,", ")
'Get the count of the array not the string.
If IsArray(CitizenshipCountry) Then
  Count = UBound(CitizenshipCountry)
  'Use (..) when referencing array elements.
  Call Response.Write(CitizenshipCountry(0))
Else
  Call Response.Write("Not an Array")
End If
Call Response.End()
%>

【讨论】:

  • 非常感谢,这就像一个魅力,我是 classis asp 的新手,以前从未使用过,只需要对旧应用程序进行一些修复,感谢您的帮助 :) (Y)。
  • 感谢the edit@Martha 阅读更好。
  • @Lankymart,闲置问题:您使用 Call Response.Write("my string") 而不是 Response.Write "my string" 的任何特殊原因?
  • @martha 因为那是我的编码风格。我发现它有助于一目了然地确定变量和子过程调用之间的差异。这纯粹是个人喜好。
猜你喜欢
  • 2010-12-23
  • 2016-06-12
  • 1970-01-01
  • 2012-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多