Phone Number Validation Function

Sean Cole (Pi) sean at pidigital.co.uk
Mon Sep 11 18:33:48 EDT 2017


Read this:
https://stackoverflow.com/questions/123559/a-comprehensive-regex-for-phone-number-validation

You can then filter by these Regular Expressions (RegEx) really simply.
More importantly, it is one or two lines of code instead of 53.

Sean Cole
*Pi Digital Productions Ltd*

'Don't try to think outside the box. Just remember the truth: There is no
box!'
'For then you realise it is not the box you are trying to look outside of,
but it is yourself!'

eMail Ts & Cs <http://pidigital.co.uk/emailTCs.rtf>   Pi Digital
Productions Ltd is a UK registered limited company, no. 5255609

On 11 September 2017 at 20:04, JB via use-livecode <
use-livecode at lists.runrev.com> wrote:

> Thanks Bob.
>
> JB
>
>
> > On Sep 11, 2017, at 11:20 AM, Bob Sneidar via use-livecode <
> use-livecode at lists.runrev.com> wrote:
> >
> > Hi all.
> >
> > Since I needed to write one, I thought I would share this phone number
> validation function. NOTE: it only works for phone numbers of the following
> format:
> >
> > -- pure numbers
> > nnnnnnn
> > nnnnnnnnnn
> >
> > -- formatted numbers
> > nnn-nnnn
> > nnn-nnn-nnnn
> > (nnn) nnn-nnnn
> >
> > It will also accept a space delimited extension so long as it begins
> with x, ex or ext.
> >
> > Anyone who wants to massage it into shape for European or other phone
> number formats can do so. The range checking is somewhat coarse, because I
> had difficulty determining what the lowest and highest area code and prefix
> can be, and also it may change in the future. Enjoy!
> >
> > Bob S
> >
> > function isPhoneNum pValue
> >   /*
> >   A phone number is a value whose raw numeric value is between 1000000
> and 9999999, or 1000000000 and
> >   9999999999, with an optional numeric value delimited by a space.
> Additionally, the first and fifth characters
> >   can be ( and ) respectively, in which case the 6th character must be a
> space and the tenth character must be
> >   a dash.
> >   */
> >   put pValue into tPhoneNumber -- preserve initial value
> >   put last word of tPhoneNumber into tExtension
> >
> >   if first char of tExtension is "x" or char 1 to 3 of tExtension is
> "ext" then
> >      delete last word of tPhoneNumber -- lose the extension
> >   else
> >      put empty into tExtension -- it's not a valid extension
> >   end if
> >
> >   -- range check
> >   put cleanAscii(tPhoneNumber, "numbers") into tPhnValue
> >
> >   if tPhnValue > 9999999 then
> >      if tPhnValue < 1000000000 or tPhnValue > 9999999999 then
> >         return false
> >      end if
> >   else
> >      if tPhnValue < 1000000 then
> >         return false
> >      end if
> >   end if
> >
> >   -- pure numbers are OK
> >   if tPhoneNumber = tPhnValue then return true
> >
> >   -- allowed characters
> >   if length(tPhnValue) = 7 then
> >      -- length must be 8 chars and char 4 must be a dash
> >      if length(tPhoneNumber) <> 8 or char 4 of tPhoneNumber is not "-"
> then
> >         return false
> >      end if
> >   else
> >      -- length must be 14, 1st char must be (, 5th char must be ), 6th
> char must be space and 10th char must be -
> >      -- or else length must be 12, 4th char must be - and 8th char must
> be -
> >      if length(tPhoneNumber) <> 14 or length(tPhoneNumber) <> 12 then
> >         return false
> >      end if
> >
> >      if length(tPhoneNumber) is 14 then
> >         if char 1 of tPhoneNumber is not "(" or \
> >               char 5 of tPhoneNumber is not ")" or \
> >               char 6 of tPhoneNumber is not space or \
> >               char 10 of tPhoneNumber is not "-" then
> >            return false
> >         end if
> >      else
> >         if char 4 of tPhoneNumber is not "-" or \
> >               char 8 of tPhoneNumber is not "-" then
> >            return false
> >         end if
> >      end if
> >   end if
> >   return true
> > end isPhoneNum
> > _______________________________________________
> > use-livecode mailing list
> > use-livecode at lists.runrev.com
> > Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
> > http://lists.runrev.com/mailman/listinfo/use-livecode
> >
>
>
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
>



More information about the use-livecode mailing list