[ic] Filter ul

John Young john_young at sonic.net
Wed Jul 16 16:14:16 EDT 2003



Trentt Cramer wrote:
> Is there a standard filter that converts (form) names to Uppercase/Lowercase
> (1st char uc, rest lc)?


Filter "namecase" is close, but it looks like it only converts when the 
inital
string starts with an uppercase letter.
Perhaps instead of:
     $val =~ s/([A-Z]\w+)/\L\u$1/g;
maybe it should say:
     $val =~ s/([A-Z][a-z]\w+)/\L\u$1/g;

Anyway, in case I've missed something, you can find all the filters and what
they do simply by looking in two places:

~interch/lib/Vend/Interpolate.pm  - look around line# 800 for "%Filter = ("
~interch/code/Filter              - which is also where you can install 
custom filters

The documentation lists filters, but the two locations above are the 
actual sources.

If you have to write your own, you can try something like creating
~interch/code/Filter/titlecase.filter containing the following:

CodeDef titlecase Filter
CodeDef titlecase Routine <<EOR
sub {
	my $val = shift;
	$val =~ s/(\w+)/\u\L$1/g;
	return $val;
}
EOR


To use it, then, you would need to restart Interchange.  I haven't 
tested the
code above, but basically the regex works like this:
\w+   matches one or more "word" characters
()    "remembers" that word through back-referencing (later referred to 
with $1)
\u    uppercase the first letter
\L    lowercase the rest of the word
$1    the word from the back-reference


HTH,
John Young



More information about the interchange-users mailing list