Phone Number Validation Function

JB sundown at pacifier.com
Mon Sep 11 15:04:39 EDT 2017


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
> 





More information about the Use-livecode mailing list