从 vbscript 数组中获取变量

Fetching a variable from a vbscript array

我有这些变量

STATE_Newverifdetaillibelle_208="test"   
STATE_Newverifdetaillibelle_209=""    
STATE_Newverifdetaillibelle_210=""    
STATE_Newverifdetaillibelle_211=""    
STATE_Newverifdetaillibelle_212=""    
STATE_Newverifdetaillibelle_213=""    
STATE_Newverifdetaillibelle_214=""    
STATE_verifmoduleid="208, 209, 210, 211, 212, 213, 214"

所以我想根据list/array

获取不为空的变量

在我的示例中,STATE_verifmoduleid 包含以下内容:

STATE_verifmoduleid="208, 209, 210, 211, 212, 213, 214"

所以基本上,我应该只捕获 STATE_Newverifdetaillibelle_208="test" 因为它不是空的。

我写了这段代码,但它没有返回变量 STATE_Newverifdetaillibelle_208="test"

中包含的值 "TEST"
Dim STATE_Newverifdetaillibelle_(1000)
Dim verifmoduleid

'Here the code of the form/request.form, bla bla bla which is working ...

Dim CheckVerifyModulesIDs,CheckVerifyModulesID, Citems

CheckVerifyModulesIDs = replace(STATE_verifmoduleid," ","")
CheckVerifyModulesID = Split(CheckVerifyModulesIDs,",")

For each Citems in CheckVerifyModulesID
    if (STATE_Newverifdetaillibelle_(Citems)) <> "" then
        response.write (STATE_Newverifdetaillibelle_(Citems)) & "<br>"
    end if
next

我该如何解决?

所有变量 STATE_Newverifdetaillibelle_* 都是单独声明的,因此您需要将每个变量名称动态构建为一个字符串,并将该字符串作为表达式求值。

STATE_Newverifdetaillibelle_208 = "test"   
STATE_Newverifdetaillibelle_209 = ""    
STATE_Newverifdetaillibelle_210 = ""    
STATE_Newverifdetaillibelle_211 = ""    
STATE_Newverifdetaillibelle_212 = ""    
STATE_Newverifdetaillibelle_213 = ""    
STATE_Newverifdetaillibelle_214 = ""    
STATE_verifmoduleid = "208, 209, 210, 211, 212, 213, 214"

' Here the code of the form/request.form, bla bla bla which is working ...

ids  =  Split(Replace(STATE_verifmoduleid," ",""),",")

For Each id in ids
    v = Eval("STATE_Newverifdetaillibelle_" & id)
    If v <> "" then
        Response.Write v & "<br>"
    End If
Next

另一种方式是把所有的值都放到一个数组或者字典中,那就不用Eval.