Regular Expressions 101

Community Patterns

Community Library Entry

0

Regular Expression
PCRE (PHP <7.3)

/
(?<freecall_7digitspecial>^180[ |-]{0,1}2[ |-]{0,1}[0-9]{1}[ |-]{0,1}[0-9]{2}$)|(?<freeANDlocalrate_3grouping_std>^1800|1300[ |-]{0,1}[0-9]{3}[ |-]{0,1}[0-9]{3}$)|(?<freeANDlocalrate_2grouping_std>^1800|1300[ |-]{0,1}[0-9]{2}[ |-]{0,1}[0-9]{2}[ |-]{0,1}[0-9]{2}$)|(?<localrate_6digitspecial>^13[ |-]{0,1}[0-9]{2}[ |-]{0,1}[0-9]{2}$)|(?<landlineGeoNSW_4grouping_8digit>^[1-9]{1}[0-9]{3}[ |-]{0,1}[0-9]{4}$)|(?<landlineGeoAreaCode_10digit>^0[2|3|7|8][ |-]{0,1}[0-9]{4}[ |-]{0,1}[0-9]{4}$)
/
g

Description

Supports: Priority and local call numbers - 13 XX XX, 1300 XXX XXX, 13XXXX, 1300 XX XX XX, 1300 XXXXXX, 130XXXXXX Freecall special numbers - 1802 XXX, 1802XXX Freecall numbers - 1800 XX XX XX, 1800 XXX XXX, 1800XXXXXX, 1800 XXXXXX landline numbers (no area code) - XXXX-XXXX, XXXXXXXX landline (areacode) - 0X XXXX-XXXX, 0X XXXXXXXX

Caveats:

  • Supports for space and hyphens where logical and popular
  • Landline areacode expects 02,03,07,08 areacode prefix
  • Landline no areacode will not accept a 0 as first digit
  • Priority Local rate 13 is 6 digits
  • Priority Local rate 1300 is 10 digits (no support for the 4 digit overrun)
  • Freecall Special 1802 is 7 digits
  • Freecall 1800 is 10 digits (no support for the 4 digit overrun)
  • No mobile
  • No International dialing prefix
  • No support for brackets on areacode or priority number prefix (conscious decision)

Reference used for rules: https://en.wikipedia.org/wiki/Telephone_numbers_in_Australia#Local_Rate_and_FreeCall_numbers_(13,_180) Wikipedia @ 18Mar2018

Submitted by Kool kat - 7 years ago