在 cfloop 中使用带有 reReplaceNoCase 的动态变量

Using dynamic variables with reReplaceNoCase in a cfloop

我正在使用 cfloop 将动态表单值插入到会话结构中。我使用 reReplaceNoCase 来清理输入,运行 遇到了一个问题,试图在 reReplaceNoCase 方法中使用动态表单字段名称。我尝试过不同的命名方案,但无法确定语法。在发布的代码中,FORM.RTchoice[r] 失败并显示错误:Element RTCHOICE is undefined in a Java object of type class [Ljava.lang.String;..如何让表单字段正确递增“r”?

<cfloop index="r" from="1" to="#APPLICATION.theCount#">
   <cfset a = StructInsert(SESSION.USER_OBJECT, "RTchoice#r#", "#reReplaceNoCase(FORM.RTchoice[r], "[^a-zA-Z0-9.,(\s)-]", "", "all")#", 1)>
    </cfloop>

你可以使用

<cfset a = StructInsert(SESSION.USER_OBJECT, "RTchoice#r#", reReplaceNoCase(FORM['RTchoice#r#'], "[^a-zA-Z0-9.,(\s)-]", "", "all"), 1)>

<cfset a = StructInsert(SESSION.USER_OBJECT, "RTchoice#r#", reReplaceNoCase(FORM['RTchoice'&r], "[^a-zA-Z0-9.,(\s)-]", "", "all"), 1)>

例如:https://cffiddle.org/app/file?filepath=cafebd5c-f4b5-4fc7-93bf-ff81ca97c234/00f6a79c-7f5f-42b2-b567-8a8a371fa8aa/3c7d3229-f65f-4afe-8538-306d98adf25f.cfm