The canadian social security number is on the SIS card of all canadian.
A check digit is the last one, computed the standard _get_control_number function.
<?php
// Include the package
require_once('Validate/CA.php');
$badSsn = '012345674';
$result = Validate_CA::ssn($badSsn);
echo 'Test ' . $badSsn .' : <br />';
var_export($result);
echo '<br /><br />';
$goodSsn = '123456782';
$result = Validate_CA::ssn($goodSsn);
echo 'Test ' . $goodSsn .' : <br />';
var_export($result);
?>
Output :
Test 012345674 :
false
Test 123456782 :
true
The postal code is a six-character, uniformly structured alphanumeric code in the form of ANA NAN where "A" represents an alphabetic character and "N" represents a numeric character.
The postal code is made up of two segments:
The first, the Forward Sortation Area (FSA), is a combination of three characters (alpha - numeric - alpha).
It identifies a major geographic area in an urban or a rural location.
The third character of the FSA segment (M4B), in conjunction with the first two characters, describes an exact area of a city or town or other geographic area.
The second segment, Local Delivery Unit (LDU), is a combination of three characters (numeric - alpha - numeric).
It identifies the smallest delivery unit within a forward sortation area.
The LDU, identified by the last three characters of the postal code, allows for a final sort within an FSA.
In Urban Areas, the last three digits may indicate a specific city block (one side of a street between two intersecting streets), a single building or, in some cases, a large volume mail receiver.
In Rural Areas, the last three digits (LDU), together with the FSA, identify a specific Rural community.
First parameter of the method is the post code to validate.
An optional parameter for limite the request to a province.
<?php
// Include the package
require_once('Validate/CA.php');
$badPostCode = '48103';
$result = Validate_CA::postalCode($badPostCode);
echo 'Test ' . $badPostCode .' : <br />';
var_export($result);
echo '<br /><br />';
$goodPostCode = 'H2M 2J1';
$result = Validate_CA::postalCode($goodPostCode);
echo 'Test ' . $goodPostCode .' : <br />';
var_export($result);
?>
Output :
Test 48103 :
false
Test H2M 2J1 :
true
H2M 2J1 like a good post code, but province don't exit.
<?php
// Include the package
require_once('Validate/CA.php');
$postalCode = 'H2M 2J1'; // in Montreal area
$result = Validate_CA::postalCode($postalCode);
echo 'Test ' . $postalCode .' : <br />';
var_export($result);
echo '<br /><br />';
$result = Validate_CA::postalCode($postalCode,'QC');
// QC for Montreal
echo 'Test ' . $postalCode .' in QC: <br />';
var_export($result);
echo '<br /><br />';
$result = Validate_CA::postalCode($postalCode,'AB');
// AB for Toronto
echo 'Test ' . $postalCode .' in AB: <br />';
var_export($result);
?>
Output :
Test H2M 2J1 :
true
Test H2M 2J1 in QC:
true
Test H2M 2J1 in AB:
false
Canada and the United States share the same numbering plan, hence you can also call Validate_US::phoneNumber()
Can allow only seven digit numbers.
Also allows the formats, (xxx) xxx-xxxx, xxx xxx-xxxx, and now x (xxx) xxx-xxxx or various combination without spaces or dashes.
<?php
// Include the package
require_once('Validate/CA.php');
$phoneNumber = '467875098x';
$result = Validate_CA::phoneNumber($phoneNumber);
echo 'Test ' . $phoneNumber .' : <br />';
var_export($result);
echo '<br />';
$phoneNumber = '4678750987';
$result = Validate_CA::phoneNumber($phoneNumber);
echo 'Test ' . $phoneNumber .' : <br />';
var_export($result);
?>
Output :
Test 467875098x :
false
Test 4678750987 :
true
See now with the parameter
<?php
// Include the package
require_once('Validate/CA.php');
$phoneNumber = '8750987';
$result = Validate_CA::phoneNumber($phoneNumber,false);
echo 'Test ' . $phoneNumber .' : <br />';
var_export($result);
echo '<br /><br />';
$phoneNumber = '8750987';
echo 'Test ' . $phoneNumber .' : <br />';
echo 'With $requireAreaCode false <br />';
$result = Validate_CA::phoneNumber($phoneNumber,false);
var_export($result);
echo '<br />';
echo 'With $requireAreaCode true<br />';
$result = Validate_CA::phoneNumber($phoneNumber,true);
var_export($result);
echo '<br /><br />';
$phoneNumber = '(467)8750987';
echo 'Test ' . $phoneNumber .' : <br />';
echo 'With $requireAreaCode false <br />';
$result = Validate_CA::phoneNumber($phoneNumber,false);
var_export($result);
echo '<br />';
echo 'With $requireAreaCode true<br />';
$result = Validate_CA::phoneNumber($phoneNumber,true);
var_export($result);
?>
Output :
Test 8750987 :
true
Test 8750987 :
With $requireAreaCode false
true
With $requireAreaCode true
false
Test (467)8750987 :
With $requireAreaCode false
false
With $requireAreaCode true
true