首页 > 编程技术 > php

身份证号码 邮编 验证代码(正则表达式)

发布时间:2016-11-25 15:11

在开发中经常会碰到身份证号码与邮编验证其合法性,下面我们为你提供一身份号验证函数与邮编验证函数以及实例。
 代码如下 复制代码

function funczip($str)//邮编正则表达试
{
 return (preg_match("/^[0-9]d{5}$/",$str))?true:false;
}

if( funczip('421800') )
{
 echo '邮编填写正确';
}
else
{
 echo '邮箱书写错误';
}

 

 代码如下 复制代码
function funccard($str)//身份证正则
{
 return (preg_match('/(^([d]{15}|[d]{18}|[d]{17}x)$)/',$str))?true:false;
}
if( funccard( '420515151920618899' ) )
{
 echo '身份证号码正确';
}
else
{
 echo '身份证号码为15位或18位哦。';
}

//本站原创,转载注明来自http://www.111cn.net/phper/php.html
 ?>

上面四种邮箱验证代码都是用正则做的,方法都可行,看你喜欢那一种哈。
 代码如下 复制代码
function funcemail($str)//邮箱正则表达式
{
 return (preg_match('/^[_.0-9a-z-a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$/',$str))?true:false;
}

//验证方法一

 代码如下 复制代码
$str="qbcd@126.com.cn";
preg_match("/^[0-9a-z]+@(([0-9a-z]+)[.])+[a-z]{2,3}$/",$str,$re);
print_r($re);

//邮箱验证二

 代码如下 复制代码
if (eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3}$",$email)) {
  echo "您的 e-mail 通过初步检查";
}

//第三种邮箱验证方法

 

 代码如下 复制代码
if (ereg("/^[a-z]([a-z0-9]*[-_.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[.][a-z]{2,3}([.][a-z]{2})?$/i; ",$email)){
 echo "your email address is correct!";}
    else{
 echo "please try again!";
 }


/*

*/

本款程序是把a标题中的所有文字取出来,利用了php的正则表达式功能来实例。
 代码如下 复制代码

   $htm = "<a href='http://www.111cn.net'>test1</a><br />" .
          "<a href='http://www.111cn.net'>test2</a><br />" .
          "<a href='http://www.111cn.net'>test3</a><br />" .
          "<a href='http://www.111cn.net'>test4</a><br />" .
          "<a href='http://www.111cn.net'>test5</a><br />";

   echo $htm . "<br />";
   echo stripthetag($htm);

function stripthetag($link) {

   return (preg_replace('@<[/!]*?[^<>]*?>@si', ' ', $link));
}

 

/*
分页简单得很,下面我们主要是讲一下关于分页原理与实现方法。
*/
/*
这样才能知道分几页。
比如说一个列表结果是126行,如果一页20行的话那么分7页,对吧。
我们的代码经理是这样的:
计算总行数:select count(*) from tablename where …..
查询列表select * from tablename where … limit…
我们看这种方式再没有任何优化的方式下这样第个列表都是再次查询。
首先我们假设数据更新频率不是很高的情况下,我们点第1页,第2页 。。。第n页 其实第一句sql得到的都是同一个结果,这样是不是后面都在做重复工作呢。那我们第1页得到结果数后是不是可以将结果一下传递下去就行了。
例如我们分页链接第2页是这样的 list.php?page=2&count=126
在程序上加一个判断:
if ($_get['count']) {
$count = $_get['count'];
} else {
$count =select count(*) from tablename where …..
}
这样优化以后如果我们只有第一页才计算总数,后面的页数都不用了,这样是不是就可以提升了效率。
还有这么种情况,也就是在模糊查询的情况下,我们有一个应用,我估计大部分查询结果数小于20,也就是都只有一页结果,那么如果都去计算总数是没有必要的,而且模糊查询效率也比较低。所以我突然想到跳出原来的思维,为什么一定要先计算总行数,再取列表呢?
其实完全可以先查询列表,如果列表结果数=20,那么我们再查询总行数,因为小于20的话,其实只有一页。总行数就等于查出来的列表结果数。
伪代码为:
if ($_get['page']<2) {
$list = select * from tablename where … limit 0,20  第一页时直接查询前20条
if (count($list)=20) {
$count =select count(*) from tablename where …..
} else {
$count =count($list);
}
} else {
$count = $_get['count'];
$list = select * from tablename where … limit page-1*20,page-1*20+20
}

bool in_array ( mixed $needle , array $haystack [, bool $strict ] ) 返回值为直或假

var_dump(in_array(0, array('s' ));

这句话的结果是bool(true)。

因为in_array会将0 和's' 进行比较,0是number类型,'s'是string类型,根据php教程 manual 中“comparison operators” 一章的说明可知,number 和string进行

比较的时候,会先将string类型首先转化为number,然后再进行比较操作。 's'转化为number的结果为0,而0 == 0 的结果是true,所以in_array(0, array('s', 'ss'))的结果也是true

如果把in_array 的第三个参数strict设置为 true,比较的时候 就会判断值和类型是否都相当。如果都相当的话,才会返回true,否则返回false.

关于php in_array语法

<?php
$a = array('1.10', 12.4, 1.13);

if (in_array('12.4', $a, true)) {
    echo "'12.4' found with strict checkn";
}

if (in_array(1.13, $a, true)) {
    echo "1.13 found with strict checkn";
}
?>

标签:[!--infotagslink--]

您可能感兴趣的文章: