Brian Dunning's FileMaker Custom Functions

CamelCasePrefix ( name )

isolate first word of camelCase-formatted names

  Average rating: 4.5 (33 votes) Log in to vote

Marc Wood   Marc Wood

Share on Facebook Share on Twitter

  Sample input:
CamelCasePrefix ("camelCase")
  Sample output:

  Function definition: (Copy & paste into FileMaker's Edit Custom Function window)

Isolates the first "word" of names written in camelCase. Useful for calculating names of layouts, fields, table occurrences, etc. Returns nothing if name has no capital letters or has spaces.

v 1.1: now uses recursive custom function to find first capital position (FM's built-in Position function is not case-sensitive):

FirstCapitalPosition ( text ; textLength )



Fabrice   Fabrice, Brussels
May 26, 2011
try "camelCase". Doesn't work.
Marc Wood   Marc Wood, Minneapolis
May 26, 2011
Thanks Fabrice. Obviously didn't test it thoroughly enough. I created a recursive function to take the place of FileMaker's Position function and edited the function to use it.
Agnès   Agnès, France
May 27, 2011

Hello, here is a test without recursion

Let ([

txt = "camelCase" ;
M = Filter ( txt ; Upper ( Txt ))
GetValue ( Substitute ( txt ; left ( M ; 1 ) ; ¶ ) ; 1 )

give camel
Fabrice   Fabrice, Brussels
May 27, 2011
in other words: to test the position of a capital letter, you'd better use a case sensitive function ;)
Daniele Raybaudi   Daniele Raybaudi, ACI
May 27, 2011
Filter ( text ; Upper ( text ) )

could fail if text contains numbers or other chars ( not alfabeth ).

Try this one too:

a = Left ( Filter ( text ; "ABCDEFGHIJKLMNOPQRSTUVWXYZ" ) ; 1 ) ;
If ( not IsEmpty ( a ) ; GetValue ( Substitute ( text ; a ; ¶ ) ; 1 )

Log in to post comments.


Note: these functions are not guaranteed or supported by Please contact the individual developer with any questions or problems.

Support this website.

This library has been a free commmunity resource for FileMaker users and developers for 16 years. It receives no funding and has no advertisements. If it has helped you out, I'd really appreciate it if you could contribute whatever you think it's worth: