More Related Content
More from Koichi Taniguchi
More from Koichi Taniguchi (9)
色々なものを正規に表現してみよう
- 1. @nipotan
http://nipotan.com/
Jul 6th, 2011 - Shibuya.pm Technical Talk #16
- 2. •
• CRE ( )
• http://nipotan.com/
• @nipotan
• http://facebook.com/nipotan
• http://gplus.to/nipotan
Jul 6th, 2011 - Shibuya.pm Technical Talk #16
- 3. • /RegEx/ -
• http://regex.gkbr.me/
•
• …
•
Jul 6th, 2011 - Shibuya.pm Technical Talk #16
- 4. “ ”
0:1-:2-:3-:4-:5-:6-:7-:8-:9-:0-
5 42
4 1
5 42
3 48 5 42
00-0-0000
Jul 6th, 2011 - Shibuya.pm Technical Talk #16
- 5. • Number::Phone::JP
• validator
• PHS
IP
FMC
•
•
•
Jul 6th, 2011 - Shibuya.pm Technical Talk #16
- 8. IP (※2011-06-01)
^050-(?:8(?:8(?:10|0d|6[4-8]|8[0-6])|0(?:
[0-2]d|3[0-8])|2(?:0d|1[0-2])|6(?:86|0
[01]))|7(?:6(?:[01]d|2[0-5])|7(?:88|7
[0-5])|1(?:0d|1[0-3])|30[0-3]|00[01]|5d
d)|3(?:8(?:[01]d|2[0-5])|2(?:[0-4]d|5
[01])|[013-7]dd|90[01])|5(?:(?:[02]0|5
[0-6])d|8(?:[0-3]d|4[0-2])|79[89])|2(?:0
(?:[0-2]d|3[0-6])|20[01]|403|525)|6(?:6
(?:19|2[0-2])|86[0-8]|[01]00)|1(?:8(?:0d|
1[0-2])|[0-7]dd)|90(?:0d|1[0-5]))d{4}$
Jul 6th, 2011 - Shibuya.pm Technical Talk #16
- 17. …
• Number::Phone::JP
• Data::RuledValidator::Plugin::Japanese (@ktat )
use strict;
use warnings;
use HTTP::Request;
use HTTP::Message::PSGI;
use Plack::Request;
use Data::RuledValidator plugin => ['Japanese'];
my $req = HTTP::Request->new(GET => 'http://localhost/?phone=0120-444444');
my $env = $req->to_psgi;
my $query = Plack::Request->new($env);
my $v = Data::RuledValidator->new(obj => $query, method => 'param');
if ($v->by_sentence('phone is jp_phone_number')) {
warn "valid";
}
else {
warn "invalid";
}
Jul 6th, 2011 - Shibuya.pm Technical Talk #16
- 18. …
• Data::RuledValidator::Plugin::Japanese perldoc
?
Jul 6th, 2011 - Shibuya.pm Technical Talk #16
- 19. “ ”
Jul 6th, 2011 - Shibuya.pm Technical Talk #16
- 20. • 3 (※2011-06-30)
• 000, 008, 009, 032, 117, 118, 119, 122, 126, 127, 128,
129, 138, 139, 147, 148, 149, 159, 172, 199, 200, 209,
217, 218, 219, 228, 229, 268, 269, 280, 281, 291, 423,
429, 499, 548, 588, 608, 609, 628, 686, 687, 688, 724,
748, 908, 909, 977, 978 (49 )
• 000-0000 999-9999
(※2011-06-30)
• 9,859,522/10,000,000 ( 98.6%)
•
Jul 6th, 2011 - Shibuya.pm Technical Talk #16
- 21. • Number::ZipCode::JP
• Now available on CPAN!
• validator
•
•
• 3
•
Jul 6th, 2011 - Shibuya.pm Technical Talk #16