我得到的cfquery结果如下所示。这个结果集为一个字段值(单行)。
会员= “CN = AG-880-ExpenseReports,CN = Users,DC = alcco,DC = com,CN = HTTP Users,CN = Users,DC = alcco,DC = com,CN = WA Houses,CN = Users,DC = alcco ,DC = com,CN = MTViewMeadows,CN = Users,DC = alcco,DC = com,CN = ALC0169 ,CN = Users,DC = alcco,DC = com,CN = ALC0069 ,CN = Users,DC = alcco,DC = com“
必须作为ALC0169,ALC0069的编号列表,我也需要从该结果集中仅使用值0169,0069 ..
有没有办法用coldfusion做到这一点?
答案 0 :(得分:2)
这是一个非常简单的字符串处理脚本,它将根据您的描述打印出您要查找的数字列表。在打印数字的地方,您需要将这些数字捕获到数组或其他结构中,具体取决于您要对数据执行的操作。
<cfscript>
memberOf = "CN=AG-880-ExpenseReports,CN=Users,DC=alcco,DC=com,CN=HTTP Users,CN=Users,DC=alcco,DC=com,CN=WA Houses,CN=Users,DC=alcco,DC=com,CN=MTViewMeadows,CN=Users,DC=alcco,DC=com,CN=ALC0169,CN=Users,DC=alcco,DC=com,CN=ALC0069,CN=Users,DC=alcco,DC=com";
memberOf = Replace(memberOf, "CN=Users,DC=alcco,DC=com", "", "all");
memberOf = Replace(memberOf, ",,", ",", "all");
memberOf = Replace(memberOf, "CN=", "", "all");
memberArray = ListToArray(memberOf);
</cfscript>
<cfoutput>
#memberOf#<br/><br/>
<cfloop array="#memberArray#" index="i">
<cfif Left(i, 3) eq "ALC">
#Right(i, Len(i)-3)#<br/>
</cfif>
</cfloop>
</cfoutput>
答案 1 :(得分:1)
我会使用列表功能。请注意,您可以指定自己的分隔符。在您的其他帖子中,您的cfldap标记返回了一个名为GroupSearch的查询。
<cfset ALCNumbers = "">
<cfloop list = "GroupSearch.MemberOf" Index = "MemberOfThis">
<cfif ListFirst(MemberOfThis, delimiters = "=") is "CN"
and left(ListLast MemberOfThis, delimiters = "="), 3) is "ALC">
<cfset ALCNumbers = ListAppend(ALCNUmbers, mid(ListLast MemberOfThis, delimiters = "="), 4,
len(ListLast MemberOfThis, delimiters = "=") - 3)>
</cfif>
</cfloop>
这可能有语法错误,因为我只是将其输入到textarea中。但是,它显示了一般的想法。