123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- <?php
- /**
- * This plugin is contributed by Untitled Web http://untitledstudios.com
- * @author Rashad Majali <rashad.612@gmail.com> http://drupal.org/user/319686
- * @file
- * CCK Field for Jordanian phone numbers.
- */
- function phone_jo_metadata(){
- // These strings are translated using t() on output.
- return array(
- 'error' => '"%value" is not a valid Jordanian phone number, Please check the spaces and dashes in your number.',
- );
- }
- /**
- * Verification for Jordanian Phone Numbers.
- *
- * @param string $phonenumber
- * @return boolean Returns boolean FALSE if the phone number is not valid.
- */
- function valid_jo_phone_number($phonenumber){
- /**
- Accepts:
- Mobile numbers: (X refers to network code, it might be 7,8,9).
- +9627X1234567
- +962-7X1234567
- +962 7X1234567
- 009627X1234567
- 00962-7X1234567
- 00962 7X1234567
- 962... accepted as well
- 07X1234567
- Local area numbers: (X refers to region code, i.e. Amman[6], north [2], middle [5], south[3]).
- +962X1234567
- +962-X-1234567
- +962X-1234567
- +962 X 1234567
- +962X 1234567
- +962 X1234567
- 00962X1234567
- 00962-X-1234567
- 00962X-1234567
- 00962 X 1234567
- 00962X 1234567
- 00962 X1234567
- 962... accepted as well
- 0X1234567
- 0X-1234567
- 0X 1234567
- Rejects:
- Generally rejects any number without leading code.
- starts with X instead of 0X
- Mobile:
- 7X1234567
- 7 X1234567 and similar formats
- +962 7 X1234567 and similar formats
- Local:
- X1234567
- X-1234567
- X 1234567 and similar formats
- */
- $regex = "/(^(\+962|00962|962|0)[-\s]{0,1}[7]{1}[7-9]{1}[0-9]{7}$) | (^(\+962|00962|962|0)[-\s]{0,1}[2-6][-\s]{0,1}[0-9]{7}$)/x";
- return (bool) preg_match($regex, $phonenumber);
- }
- /**
- * Formatting for Jordanian Phone Numbers.
- *
- * @param string $phonenumber
- * @return string Returns a string containting the phone number with some formatting.
- */
- function format_jo_phone_number($phonenumber, $field = FALSE){
- $phonenumber = trim($phonenumber);
- $regex = "/(^(\+962|00962|962|0)[-\s]{0,1}[7]{1}[7-9]{1}[0-9]{7}$) | (^(\+962|00962|962|0)[-\s]{0,1}[2-6][-\s]{0,1}[0-9]{7}$)/x";
- preg_match($regex, $phonenumber, $matches);
- $phonenumber = preg_replace('/^(\+962|00962|962|0)|[-\s]/', '', $matches[0]);
- return '+962'.$phonenumber;
- }
|