0

我得到如下 cfquery 结果。这个结果集为一个字段值(单行)。

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"

必须从中获取 ALC0169,ALC0069 的编号列表,我也只需要该结果集中的值 0169,0069..。

有没有办法通过冷融合来做到这一点?

4

2 回答 2

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>
于 2013-11-04T20:20:19.853 回答
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 中。但是,它显示了总体思路。

于 2013-11-04T20:42:41.073 回答