Brian Dunning's FileMaker Custom Functions

Patternize ( direction ; pattern ; replaceChar ; value ; pad? )

Masks or Pads according to a pattern and direction

  Average rating: 4.2 (34 votes) Log in to vote

Steve Allen   Steve Allen
Richard Carlton Consulting
http://www.rcconsulting.com

Share on Facebook Share on Twitter

  Sample input:
Patternize ( "RTL" ; "xxxx-xxxx-xxxx-####" ; "#" ; "5105105105105100" ; 0 )

Patternize ( "LTR" ; "(###) ###-#### x. ####" ; "#" ; "7074224053123" ; 1 )

Patternize ( "LTR" ; "00" ; "" ; "20" ; 1 )
  Sample output:
xxxx-xxxx-xxxx-5100

(707) 422-4053 x. 123#

0020

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

This function is extremely versatile. It takes any character pattern, any set of replaceable characters, and any value.

It replaces any replaceable character in the pattern with the corresponding character from the value, starting from either the right or the left.

If you tell it to, it will pad whatever is left over onto the end it finishes on. That is, if there is more pattern than value, it will pad the remaining pattern onto the end it finishes on. Or, if you run out of pattern before you run out of value, it will pad on what's left of the value.

Which end it pads it on depends on whether you're working from right to left or left to right. It's whichever it ends on. So, if you're working right to left, it will pad it on the left; if left to right, then on the right.

It will pad like this if you tell it to. You can also tell it not to pad anything, in which case it will just stop at the end of the pattern or the value, whichever comes first.)

It will read the pattern, replacement character set, and the value as Text, so if you're feeding it a Date field or something, be sure it's seeing the field's value in the string format you actually have in mind. (e.g. "07/25/2014", instead of "735439")

 

Comments

Stam   Stam, London
Feb 23, 2018
Some explicit documentation of input parameters and outputs would be appreciated - thanks
 

Log in to post comments.

 

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

Under construction. Email me your wish list for improvements.