5

WBOY
WBOYオリジナル
2016-07-25 08:47:29887ブラウズ
DD
  1. /**
  2. * 検証クラス
  3. *
  4. * @lastmodify 2014-5-16
  5. * @author jy625
  6. */
  7. class VerifyAction{
  8. /**
  9. * null値かどうか
  10. */
  11. public static function isEmpty($str){
  12. $str =trim($str);
  13. !empty($str) を返す ? true : false;
  14. }
  15. /**
  16. * 数値検証
  17. * param:$flag: int が整数か float が浮動小数点型かどうか
  18. */
  19. public static function isNum($str,$flag = 'float'){
  20. if(!self::isEmpty($str)) return false;
  21. if(strto lower($flag) == 'int'){
  22. return ((string)(int)$str === (string)$str) ? true : false;
  23. }else{
  24. return ((string)(float)$str === (string)$str) ? true : false;
  25. }
  26. }
  27. /**
  28. * ユーザー名、ディレクトリ名などの名前の一致
  29. * @param:string $str 一致する文字列
  30. * @param:$chinese 中国語をサポートするかどうか、ファイル名を一致させる場合はデフォルトでサポートされます。 、これをオフにすることをお勧めします ( false )
  31. * @param:$charset エンコーディング (デフォルトは utf-8、gb2312 をサポートします)
  32. */
  33. public static function isName($str,$chinese = true,$charset = 'utf-8'){
  34. if(!self::isEmpty( $str)) return false;
  35. if($chinese){
  36. $match = (strto lower($charset) == 'gb2312') ? "/^[".chr(0xa1)."-".chr(0xff)."A-Za-z0-9_-]+$/" : "/^[x{4e00}-x{9fa5}A- Za-z0-9_]+$/u";
  37. }else{
  38. $match = '/^[A-za-z0-9_-]+$/';
  39. }
  40. return preg_match($match,$str) ? true : false;
  41. }
  42. /**
  43. * メール認証
  44. */
  45. public static function isEmail($str){
  46. if(!self::isEmpty($str)) return false;
  47. return preg_match("/([a -z0-9]*[-_.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[.] [a-z]{2,3}([.][a-z]{2})?/i",$str) ? true : false;
  48. }
  49. //手机号验证
  50. public static function isMobile($str){
  51. $exp = "/^13[0-9]程序猿笑话[0-9]{8}$|15[ 012356789]程序猿笑话[0-9]{8}$|18[012356789]程序猿笑话[0-9]{8}$|14[57]程序猿笑话[0-9]$/";
  52. if (preg_match($exp,$str)){
  53. return true;
  54. }else{
  55. return false;
  56. }
  57. }
  58. /**
  59. *URL 検証、純粋な URL 形式、IP 検証はサポートされていません
  60. */
  61. public static function isUrl($str){
  62. if(! self::isEmpty($str)) return false;
  63. return preg_match('#(http|https|ftp|ftps)://([w-]+.)+[w-]+(/[w-. /?%&=]*)?#i',$str) ? true : false;
  64. }
  65. /**
  66. * 中国語を確認します
  67. * @param:string $str 照合する文字列
  68. * @param:$charset エンコーディング (デフォルトは utf-8、gb2312 をサポートします)
  69. */
  70. public static function is Chinese($str,$charset = 'utf-8'){
  71. if(!self::isEmpty($str)) return false;
  72. $match = (strto lower($charset) == 'gb2312') ? "/^[".chr(0xa1)."-".chr(0xff)."]+$/"
  73. : "/^[x{4e00}-x{9fa5}]+$/u";
  74. return preg_match($match,$str) ?真/偽;
  75. }
  76. /**
  77. *UTF-8 検証
  78. */
  79. public static function isUtf8($str){
  80. if(!self::isEmpty($str)) return false;
  81. return (preg_match("/^([".chr(228)."-".chr(233)."]程序猿笑话[".chr(128)."-".chr(191)."]程序猿笑话[".chr(128)."-".chr(191)."]程序猿笑话)程序猿笑话/",$word)
  82. == true || preg_match("/([".chr (228)."-".chr(233)."]程序猿笑话[".chr(128)."-".chr(191)."]程序猿笑话[".chr(128)."- ".chr(191)."]程序猿笑话)程序猿笑话$/",$word)
  83. == true || preg_match("/([".chr(228)."-".chr(233) ."]程序猿笑话[".chr(128)."-".chr(191)."]程序猿笑话[".chr(128)."-".chr(191)."]程序猿笑话){2,}/",$word)
  84. == true) ?真/偽;
  85. }
  86. /**
  87. * 検証長
  88. * @param: string $str
  89. * @param: int $type (メソッド、デフォルト min <= $str <= max)
  90. * @param: int $min、最小値、最大値;
  91. * @param: string $charset 文字
  92. */
  93. public static function length($str,$type=3,$min=0,$max=0,$charset = 'utf-8'){
  94. if(!self:: isEmpty($str)) return false;
  95. $len = mb_strlen($str,$charset);
  96. switch($type){
  97. case 1: //只適合最小值
  98. return ($len >= $min) ? true : false;
  99. Break;
  100. case 2: //只匹配最大值
  101. return ($max >= $len) ? true : false;
  102. Break;
  103. デフォルト: //min <= $str <= max
  104. return (($min <= $len) && ($len <= $max)) ? true : false;
  105. }
  106. }
  107. /**
  108. * 認証パスワード
  109. * @param string $value
  110. * @param int $length
  111. * @return boolean
  112. */
  113. パブリック静的関数 isPWD($value,$minLen=6,$maxLen=16){
  114. $match='/^[\~!@# $%^&*()-_=+|{}[],.?/:;'"dw]{'.$minLen.','.$maxLen.'}$/';
  115. $v = トリム($value);
  116. if(empty($v))
  117. return false;
  118. return preg_match($match,$v);
  119. }
  120. /**
  121. * ユーザー名を確認します
  122. * @param string $value
  123. * @param int $length
  124. * @return boolean
  125. */
  126. public static function isNames($value, $ minLen=2, $maxLen=16, $charset='ALL'){
  127. if(empty($value))
  128. return false;
  129. switch($charset){
  130. case 'EN': $match = '/^[ _wd]{'.$minLen.','.$maxLen.'}$/iu';
  131. break;
  132. case 'CN':$match = '/^[_x{4e00}-x{9fa5}d]{ '.$minLen.','.$maxLen.'}$/iu';
  133. break;
  134. default:$match = '/^[_wdx{4e00}-x{9fa5}]{'.$minLen.', '.$maxLen.'}$/iu';
  135. }
  136. return preg_match($match,$value);
  137. }
  138. /**
  139. * 確認メール
  140. * @param string $value
  141. */
  142. public static function checkZip($str){
  143. if(strlen ($str)!=6){
  144. return false;
  145. }
  146. if(substr($str,0,1)==0){
  147. return false;
  148. }
  149. return true;
  150. }
  151. /**
  152. * 日付の一致
  153. * @param string $value
  154. */
  155. public static function checkDate($str){
  156. $dateArr =explode("-", $str);
  157. if (is_numeric($dateArr[0]) && is_numeric($dateArr[1]) && is_numeric( $dateArr[2])) {
  158. if (($dateArr[0] >= 1000 && $timeArr[0] return true;
  159. else
  160. return false;
  161. }
  162. return false;
  163. }
  164. }
复制幣
  1. dddd
复政代


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。