1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
<?php
/* ------------------------------------------------
* preg_matchの正規表現によるチェック
* URLとemail、郵便番号、電話番号形式チェック
*
* 作成: 2015.07.23 yoshi of CXMedia Inc.
* ------------------------------------------------ */
header("Content-type:text/plain; charset=UTF-8");
/* ------------------------------------
* URLの正規表現
* ------------------------------------ */
$text = "http://www.yahoo.co.jp/";
if (preg_match('/^(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$/', $text)) {
echo "■正しいURLです\n";
} else {
echo "■正しくないURLです\n";
}
//--
$url = "http://komunitasweb.com/";
if (preg_match('/^(https?|ftp):\/\/([A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):?(\d+)?\/?/i', $url)) {
echo "■URL OK!\n";
} else {
echo "■URL NG\n";
}
/* ------------------------------------
* メールアドレスの正規表現
* ------------------------------------ */
$email = "y-test@example.com";
if (preg_match('/^[^0-9][a-zA-Z0-9_-]+([.][a-zA-Z0-9_-]+)*[@][a-zA-Z0-9_-]+([.][a-zA-Z0-9_-]+)*[.][a-zA-Z]{2,4}$/',$email)) {
echo "■メールアドレス OK!\n";
} else {
echo "■メールアドレス NG\n";
}
//--
$text = "y_.y-mail@mail.com";
if (preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/", $text)) {
echo "■正しいメールアドレス(かもしれません)\n";
} else {
echo "■正しくないメールアドレス(かもしれません)\n";
}
//--
echo "【メールアドレスのloose】";
$text = "y_.y-mail@mail.com";
$result = isValidInetAddress($text);
print_r($result);
echo "【メールアドレスのstrict】";
$result = isValidInetAddress($text,true);
print_r($result);
echo "\n";
function isValidInetAddress($data, $strict = false){
$regex = $strict ? '/^([.0-9a-z_+-]+)@(([0-9a-z-]+\.)+[0-9a-z]{2,})$/i' : '/^([*+!.&#$|\'\\%\/0-9a-z^_`{}=?> :-]+)@(([0-9a-z-]+\.)+[0-9a-z]{2,})$/i';
if (preg_match($regex, trim($data), $matches)) {
return array($matches[1], $matches[2]);
} else {
return "■{$data}は、正しくないメールアドレス\n";
}
}
/* ------------------------------------
* 郵便番号の正規表現
* ------------------------------------ */
$text = "160-0001";
if (preg_match("/^\d{3}-\d{4}$/", $text)) {
echo "■{$text}は、正しい郵便番号です\n";
} else {
echo "■{$text}は、正しくない郵便番号です\n";
}
/* ------------------------------------
* 電話番号の正規表現
* ------------------------------------ */
is_phone("0120-423-232"); //フリーダイヤル
is_phone("045-543-1122"); //固定電話
is_phone("090-5432-1122"); //携帯電話
is_phone("+080-03-5432-1122"); //国際電話
function is_phone($text){
$reg_phone_ptn = '/^(\+\d{3}-)?(\d{1,5})-(\d{1,4})-(\d{3,5})$/';
echo "\n";
if(preg_match($reg_phone_ptn,$text,$data)){
// 局番の桁数チェック
if((strlen($data[2]) + strlen($data[3])) <= 7){
echo "■電話番号OK!\n";
}else {
echo "■電話番号NG\n";
}
var_export($data);
} else {
echo "■電話番号NG\n";
}
}
?>