Pop-Out

<cffunction name="leftWords" access="public" output="false" returntype="string"
            hint="I return a string limited to X characters without butchering the last word.">
    <cfargument name="InputString" required="true" type="string" />
    <cfargument name="CharacterLimit" required="true" type="numeric" />
    
    <cfset var CharacterCount = 0 />
    <cfset var ReturnString = "" />
    <cfloop list=#arguments.InputString# index="i" delimiters=" ">
        <cfif CharacterCount + Len(i) LTE arguments.CharacterLimit>
            <cfset CharacterCount = CharacterCount + Len(i) />
            <cfset ReturnString = ListAppend(ReturnString,i," ") />
        <cfelse>
            <cfbreak />
        </cfif>
    </cfloop>
    <cfreturn ReturnString />
</cffunction>

Cut-N-Paste