Regexp::Common::SEN - provide regexes for Social-Economical Numbers.


Regexp-Common documentation Contained in the Regexp-Common distribution.

Index


Code Index:

NAME

Top

Regexp::Common::SEN -- provide regexes for Social-Economical Numbers.

SYNOPSIS

Top

 use Regexp::Common qw /SEN/;

 while (<>) {
     /^$RE{SEN}{USA}{SSN}$/    and  print "Social Security Number\n";
 }




DESCRIPTION

Top

Please consult the manual of Regexp::Common for a general description of the works of this interface.

Do not use this module directly, but load it via Regexp::Common.

$RE{SEN}{USA}{SSN}{-sep}

Returns a pattern that matches an American Social Security Number (SSN). SSNs consist of three groups of numbers, separated by a hypen (-). This pattern only checks for a valid structure, that is, it validates whether a number is valid SSN, was a valid SSN, or maybe a valid SSN in the future. There are almost a billion possible SSNs, and about 400 million are in use, or have been in use.

If -sep=P is specified, the pattern P is used as the separator between the groups of numbers.

Under -keep (see Regexp::Common):

$1

captures the entire SSN.

$2

captures the first group of digits (the area number).

$3

captures the second group of digits (the group number).

$4

captures the third group of digits (the serial number).

SEE ALSO

Top

Regexp::Common for a general description of how to use this interface.

AUTHORS

Top

Damian Conway and Abigail.

MAINTAINANCE

Top

This package is maintained by Abigail (regexp-common@abigail.be).

BUGS AND IRRITATIONS

Top

Bound to be plenty.

For a start, there are many common regexes missing. Send them in to regexp-common@abigail.be.

LICENSE and COPYRIGHT

Top


Regexp-Common documentation Contained in the Regexp-Common distribution.
package Regexp::Common::SEN;

use Regexp::Common qw /pattern clean no_defaults/;

use strict;
use warnings;

use vars qw /$VERSION/;
$VERSION = '2010010201';

# http://www.ssa.gov/history/ssn/geocard.html
pattern name   => [qw /SEN USA SSN -sep=-/],
        create => sub {
            my $sep = $_ [1] {-sep};
            "(?k:(?k:[1-9][0-9][0-9]|0[1-9][0-9]|00[1-9])$sep"   .
                "(?k:[1-9][0-9]|0[1-9])$sep"                     .
                "(?k:[1-9][0-9][0-9][0-9]|0[1-9][0-9][0-9]|"     .
                                         "00[1-9][0-9]|000[1-9]))"
        },
        ;

1;

__END__