Home Back E-mail



Character validation in FileMaker Pro


If you want to check the input into a text field for "forbidden characters" you might find the following hints useful.

Create a global text field "g.forbidden.characters". Fill this field with all unwanted ("forbidden") characters. For example, if you want to exclude anything but a...z and A...Z on a German keyboard layout, you would have to enter the following (the first character is a space):
 1234567890!"§$%&/()=?`{[]}\´*+~öÖäÄüÜß#',;.:-_<>|@23μ°^
This makes 55 characters in all. The sequence of the characters does not matter. The number of possible unwanted characters on various national keyboards can be even higher so in the following text field validation for the field "t.a.to.z.only" you would have to extend beyond 60 lines:
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;1;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;2;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;3;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;4;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;5;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;6;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;7;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;8;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;9;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;10;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;11;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;12;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;13;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;14;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;15;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;16;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;17;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;18;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;19;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;20;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;21;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;22;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;23;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;24;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;25;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;26;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;27;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;28;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;29;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;30;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;31;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;32;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;33;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;34;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;35;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;36;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;37;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;38;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;39;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;40;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;41;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;42;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;43;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;44;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;45;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;46;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;47;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;48;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;49;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;50;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;51;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;52;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;53;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;54;1))=0 and
PatternCount(t.a.to.z.only;Middle(g.forbidden.characters;55;1))=0
This calculation with not discern between upper and lower case though!

Checking for the absence of hard returns is even more simple; imagine you want no hard returns in "t.textfield":
PatternCount(t.textfield;"¶")=0


Good luck!

Back to the list of my FileMaker Pro trouvailles

Home Back to Christoph Bouthillier Top

© 1997...