- see footer for list info -<
Thanks for the input guys... regex is a good candidate... my regex is
pretty rusty


The CapFirstTitle() code looks interesting and also has a list of
words to not capitalise:

<cfscript>

function capFirstTitle(initText){
        
        var Words = "";
        var j = 1; var m = 1;
        var doCap = "";
        var thisWord = "";
        var excludeWords = ArrayNew(1);
        var outputString = "";
        
        initText = LCASE(initText);
        
        //Words to never capitalize
        excludeWords[1] = "an";
        excludeWords[2] = "the";
        excludeWords[3] = "at";
        excludeWords[4] = "by";
        excludeWords[5] = "for";
        excludeWords[6] = "of";
        excludeWords[7] = "in";
        excludeWords[8] = "up";
        excludeWords[9] = "on";
        excludeWords[10] = "to";
        excludeWords[11] = "and";
        excludeWords[12] = "as";
        excludeWords[13] = "but";
        excludeWords[14] = "if";
        excludeWords[15] = "or";
        excludeWords[16] = "nor";
        excludeWords[17] = "a";
        
        //Make each word in text an array variable
                
        Words = ListToArray(initText, " ");
        
        //Check words against exclude list
        for(j=1; j LTE (ArrayLen(Words)); j = j+1){
                doCap = true;
                
                //Word must be less that four characters to be in the list of 
excluded words
                if(LEN(Words[j]) LT 4 ){
                        if(ListFind(ArrayToList(excludeWords,","),Words[j])){
                                doCap = false;
                        }
                }

                //Capitalize hyphenated words           
                if(ListLen(Words[j],"-") GT 1){
                        for(m=2; m LTE ListLen(Words[j], "-"); m=m+1){
                                thisWord = ListGetAt(Words[j], m, "-");
                                thisWord = UCase(Mid(thisWord,1, 1)) & 
Mid(thisWord,2, LEN(thisWord)-1);
                                Words[j] = ListSetAt(Words[j], m, thisWord, 
"-");
                        }
                }
                
                //Automatically capitalize first and last words
                if(j eq 1 or j eq ArrayLen(Words)){
                        doCap = true;
                }
                
                //Capitalize qualifying words
                if(doCap){
                        Words[j] = UCase(Mid(Words[j],1, 1)) & Mid(Words[j],2, 
LEN(Words[j])-1);
                }
        }
        
        outputString = ArrayToList(Words, " ");

        return outputString;

}
</cfscript>

I'll have a play with this and also the regexes

Thanks very much guys

On 11/22/06, Peter Boughton <[EMAIL PROTECTED]> wrote:
>- see footer for list info -<
Ah, I nearly had it. Ish. Didn't think the \U and \L stuff worked with
CF, but it apparently does. That's good to know. :)

A slight modification though:
test2 = reReplace(test, "(\b\w)(\w*)\b", "\u\1\L\2","ALL");

( \u[char] is equivalent to \U[char]\E )


On 11/22/06, Simon Baynes <[EMAIL PROTECTED]> wrote:
> >- see footer for list info -<
> Use RegEx, looping trhough a list of words is ludicrous:-
>
>
> <cfscript>
> test = "VIRGIN ISLANDS";
>
> test2 = reReplace(test, "(\b\w)(\w*)\b", "\U\1\E\L\2","ALL");
> </cfscript>
> <cfoutput>#test2#</cfoutput>
>
>
>
> On 11/22/06, RichL <[EMAIL PROTECTED]> wrote:
> > >- see footer for list info -<
> > I have just found CapFirstTitle on CFLib which looks interesting
> >
> > On 11/22/06, Damien Gallagher <[EMAIL PROTECTED]> wrote:
> > > >- see footer for list info -<
> > > I think there's a UDF to do just this on Ray Camden's site...
> > >
> > > RichL wrote:
> > > >> - see footer for list info -<
> > > > Hi Guys
> > > >
> > > > I have a country reference table where all of the country names are
> > > > held in upper case.
> > > >
> > > > I want to be able to output in lower case but keep the caps where
> > > > appropriate (e.g. UNITED KINGDOM to United Kingdom).
> > > >
> > > > However I think that this going to be close to impossible as there are
> > > > values such as:
> > > >
> > > > VIRGIN ISLANDS (BRITISH)
> > > > VIRGIN ISLANDS (U.S.)
> > > > WALLIS AND FUTANA
> > > >
> > > > So using a function to capitalise the first letter of each word won't
> > > > really work.
> > > >
> > > > How have people approached this situation and has anybody found any
> > > > good solution?
> > > >
> > > > Also, is there a UDF around for capitalising the first letter of each
> > > > word?
> > > >
> > > > Thanks in advance
> > > >
> > > _______________________________________________
> > >
> > > For details on ALL mailing lists and for joining or leaving lists, go to 
http://list.cfdeveloper.co.uk/mailman/listinfo
> > >
> > > --
> > > CFDeveloper Sponsors:-
> > > >- cfdeveloper Hosting provided by www.cfmxhosting.co.uk -<
> > > >- Lists hosted by www.Gradwell.com -<
> > > >- CFdeveloper is run by Russ Michaels, feel free to volunteer your help 
-<
> > >
> >
> >
> > --
> > Rich
> > _______________________________________________
> >
> > For details on ALL mailing lists and for joining or leaving lists, go to 
http://list.cfdeveloper.co.uk/mailman/listinfo
> >
> > --
> > CFDeveloper Sponsors:-
> > >- cfdeveloper Hosting provided by www.cfmxhosting.co.uk -<
> > >- Lists hosted by www.Gradwell.com -<
> > >- CFdeveloper is run by Russ Michaels, feel free to volunteer your help -<
> >
>
>
> --
> Simon Baynes
> www.simonbaynes.com
> _______________________________________________
>
> For details on ALL mailing lists and for joining or leaving lists, go to 
http://list.cfdeveloper.co.uk/mailman/listinfo
>
> --
> CFDeveloper Sponsors:-
> >- cfdeveloper Hosting provided by www.cfmxhosting.co.uk -<
> >- Lists hosted by www.Gradwell.com -<
> >- CFdeveloper is run by Russ Michaels, feel free to volunteer your help -<
>


--
 \ \
Peter Boughton
blog.bpsite.net
 / /
_______________________________________________

For details on ALL mailing lists and for joining or leaving lists, go to 
http://list.cfdeveloper.co.uk/mailman/listinfo

--
CFDeveloper Sponsors:-
>- cfdeveloper Hosting provided by www.cfmxhosting.co.uk -<
>- Lists hosted by www.Gradwell.com -<
>- CFdeveloper is run by Russ Michaels, feel free to volunteer your help -<



--
Rich
_______________________________________________

For details on ALL mailing lists and for joining or leaving lists, go to 
http://list.cfdeveloper.co.uk/mailman/listinfo

--
CFDeveloper Sponsors:-
- cfdeveloper Hosting provided by www.cfmxhosting.co.uk -<
- Lists hosted by www.Gradwell.com -<
- CFdeveloper is run by Russ Michaels, feel free to volunteer your help -<

Reply via email to