This code snippet is a regular expression which checks or validates a credit card number.
The Expression
^([0-9]{4})[-|s]*([0-9]{4})[-|s]*([0-9]{4})[-|s]*([0-9]{2,4})$
This regular expression will match any of the following credit card number formats:
- 0000-0000-0000-0000
- 0000-0000-0000-000
- 0000-0000-0000-00
- 0000 0000 0000 0000
- 0000 0000 0000 000
- 0000 0000 0000 00
- 0000000000000000
- 000000000000000
- 00000000000000
Validate Function
Here is a quick and simple validation function for a credit card number using the regular expression above and PHP’s preg_match() function:
function validate_credit_card_number($string)
{
if(preg_match('/^([0-9]{4})[-|s]*([0-9]{4})[-|s]*([0-9]{4})[-|s]*([0-9]{2,4})$/', $string))
{
return TRUE;
}
else
{
return FALSE;
}
}
Modify the Data
$string = "1234123412341234";
preg_match('/^([0-9]{4})[-|s]*([0-9]{4})[-|s]*([0-9]{4})[-|s]*([0-9]{2,4})$/', $string, $matches);
$new_string = $matches[1] . '-' . $matches[2] . '-' . $matches[3] . '-' . $matches[4];
// New String:
// 1234-1234-1234-1234
There you go! If you find you need another format or you’d like a different type of string to validate, please send me an email and I will respond as quickly as I can.