Phone Number Validation Function

Sean Cole (Pi) sean at pidigital.co.uk
Tue Sep 12 00:38:21 CEST 2017


There are currently 342 expressions on the regexlibrary:
http://www.regexlib.com/Search.aspx?k=phone&AspxAutoDetectCookieSupport=1

Some eliminate erroneous numbers too like those begining with 123 or 555
and so on.

Sean Cole
*Pi Digital Productions Ltd*
www.pidigital.co.uk
+44(1634)402193
+44(7702)116447
'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 23:33, Sean Cole (Pi) <sean at pidigital.co.uk> wrote:

> 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