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
<?php
/* --------------------------------------------------------------------
 *    入力データのチェック・ライブラリ 
 *                    【copyright CXMedia allright reserved.】
 *   2011.12.02 作成 yoshi of CXMedia Inc. 
 *   2015.09.27 追加 日付形式のチェックを追加
 * -------------------------------------------------------------------- */
/* ----------------------------------------
 *    URLの正規表現チェック
 *    返り値:TRUE/FALSE
 *    [ 参照先;http://www.ideaxidea.com/archives/2009/03/practical_php_regexs.html ]
 * -------------------------------------- */
function is_url($url){
   if(
preg_match('/^(https?|ftp):\/\/([A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):?(\d+)?\/?/i',$url)){
      return 
TRUE;
   } else {
      return 
FALSE;
   }
}

/* ----------------------------------------------------- 
 *    メールアドレスの正規表現チェック
 *    返り値:TRUE/FALSE
 *    [ 参照先;http://phpspot.net/ ]
 * -------------------------------------- */
function is_mail($text){
   if(
preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/",$text)){
      return 
TRUE;
   } else {
      return 
FALSE;
   }
}

/* -------------------------------------------
 *    郵便番号の正規表現チェック
 *    返り値:TRUE/FALSE
 * ------------------------------------------- */
function is_zipcode($zipcode){
   if (
preg_match("/^\d{3}-\d{4}$/",$zipcode)) {
      return 
TRUE;
   } else {
      return 
FALSE;
   }
}

/* ----------------------------------------------------------------------------
 *    電話番号の正規表現チェック:固定電話、携帯電話、フリーダイヤル、国際電話
 *    返り値:TRUE/FALSE
 * ---------------------------------------------------------------------------- */
function is_phone($text){
   
$reg_phone_ptn '/^(\+\d{3}-)?(\d{1,5})-(\d{1,4})-(\d{3,5})$/';
   if(
preg_match_all($reg_phone_ptn,$text,$data,PREG_SET_ORDER)){
      
// var_export($data);
      // 局番の桁数チェック
      
if((strlen($data[0][2]) + strlen($data[0][3])) <= 7){
         return 
TRUE;
      }else {
         return 
FALSE;
      }
   } else {
      return 
FALSE;
   }
}
/* ----------------------------------------------
 *    日付形式の正規表現チェック
 *    引数:入力データ、セパレータ(省略時:'-')
 *    返り値:年月日/FALSE
 * ---------------------------------------------- */
function is_date($str,$sep '-'){
    
// 日付形式の正規表現パターン
    
$reg_ptn '/^([0-9]{2,4})'.$sep.'([0-9]{1,2})'.$sep.'([0-9]{1,2})$/';
    if(!
preg_match($reg_ptn,$str,$match)){return FALSE;}
    return 
checkdate( (int)$match[2],(int)$match[3],(int)$match[1] );
}
?>