ListFindNoCase

Description

Determines the index of the first list element in which a specified value occurs.

Returns

Index of the first list element that contains value. If not found, returns zero. The search is case-insensitive.

Function syntax

ListFindNoCase(list, value [, delimiters, includeEmptyValues ])

See also

ListContains, ListFind; Lists in the Developing ColdFusion Applications

Parameters

Parameter

Description

includeEmptyValues

Optional. Set to yes to include empty values.

list

A list or a variable that contains one.

value

Number or string for which to search. The search is case-insensitive.

delimiters

A string or a variable that contains one. Characters that separate list elements. The default value is comma.

If this parameter contains more than one character, ColdFusion processes each occurrence of each character as a delimiter.

Usage

ColdFusion ignores empty list elements; thus, the list "a,b,c,,,d" has four elements.

Example

<!--- Uses ListFind and ListFindNoCase to see if a substring exists  
    in a list --->  
<form action="./listfind.cfm" method="POST">  
    <p>Try changing the case in Leary's last name:  
    <br><input type="Text" size="25" name="myString" value="Leary">  
    <p>Pick a search type:  
        <select name="type">  
            <option value="ListFind" selected>Case-Sensitive  
            <option value="ListFindNoCase">Case-Insensitive  
        </select>  
    <input type="Submit" name="" value="Search Employee List">  
</form>  
 
<!--- wait to have a string for searching defined --->  
<cfif IsDefined("form.myString") and IsDefined("form.type")>  
 
<cfquery name="SearchEmpLastName" datasource="cfdocexamples">  
    SELECT FirstName, RTrim(LastName) AS LName, Phone, Department  
    FROM Employees  
</cfquery>  
 
<cfset myList = ValueList(SearchEmpLastName.LName)>  
<!--- Is this case-sensitive or case-insensitive searching --->  
<cfif form.type is "ListFind">  
    <cfset temp = ListFind(myList, form.myString)>  
        <cfif temp is 0>  
            <h3>An employee with that exact last name was not found</h3>  
        <cfelse>  
            <cfoutput>  
            <p>Employee #ListGetAt(ValueList(SearchEmpLastName.FirstName), temp)#  
            #ListGetAt(ValueList(SearchEmpLastName.LName), temp)#, of the 
            #ListGetAt(ValueList(SearchEmpLastName.Department), temp)# Department, 
            can be reached at #ListGetAt(ValueList(SearchEmpLastName.Phone), 
            temp)#.  
            <p>This was the first employee found under this case-sensitive last name 
            search.  
            </cfoutput>  
        </cfif>  
        <cfelse>  
            <cfset temp = ListFindNoCase(myList, form.myString)>  
            <cfif temp is 0>  
                <h3>An employee with that exact last name was not found</h3>  
            <cfelse>  
                <cfoutput>  
                <p>Employee #ListGetAt(ValueList(SearchEmpLastName.FirstName), temp)#  
                #ListGetAt(ValueList(SearchEmpLastName.LName), temp)#, of the 
                #ListGetAt(ValueList(SearchEmpLastName.Department), temp)# 
                Department, can be reached at 
                #ListGetAt(ValueList(SearchEmpLastName.Phone), temp)#.  
                <p>This was the first employee found under this case-insensitive last 
                name search.  
            </cfoutput>  
        </cfif>  
    </cfif>  
</cfif>