Another Phone Number Translation

Here's another Phone Number Translation.
It's done in Formula Language so it's fast.
It basically takes anything entered into a phone number field and makes it look
like:
(123) 456-7890
They can enter 123 456-7890 or 123.456.7890.
The formula using some functions with their optional parameters which I'll bet
you didn't know existed.

Marc Alumbaugh

REM "DSCValidatePhoneNum";
REM " V1.0 - 7/4/96";
REM " Intellectual Property of Data Solutions Corp.";

work := CP_CompPhone;

REM "If it is the way we want it then exit";
@If(
@Matches(work; "{(}{0-9}{0-9}{0-9}{)}-{0-9}{0-9}{0-9}-{0-9}{0-9}{0-9}{0-9}") |
work = "";
@Return(work);
@Success
);

REM "Get the junk that is not numeric";
NotWanted := @Implode(@Explode(work; "0123456789"));

REM "Get rid of the junk that is not numeric & all spaces";
GoodNumber := @Implode(@Explode(work; NotWanted); "");

REM " If it isn\'t the correct length than leave it alone ";
@If(
@Length(GoodNumber) != 10;
@Return(work);
""
);

REM "Now Format the Phone";
areacode := @Left(goodnumber; 3);
restphone := @Right(goodnumber; 7);
"(" + areacode + ")-" + @Left(restphone; 3) + "-" + @Right(restphone; 4)

This was first published in November 2000

Disclaimer: Our Tips Exchange is a forum for you to share technical advice and expertise with your peers and to learn from other enterprise IT professionals. TechTarget provides the infrastructure to facilitate this sharing of information. However, we cannot guarantee the accuracy or validity of the material submitted. You agree that your use of the Ask The Expert services and your reliance on any questions, answers, information or other materials received through this Web site is at your own risk.