创建时间:2017-03-04
用户名
/^[a-z0-9_-]{3,16}$/密码
/^[a-z0-9_-]{6,18}$/目前所知,移动的号码段有
134,135,146,137,138,139
157,158,159
新增的3G号码 182,183,188
手机号码一共11位,前面三位为运营商号段,中间四位为归属地,后四位为随机号
需要检测手机号码
$mobile = "13400000000";如果是判断是否为运营商号码
//检测手机号码的正则表达式
$regex1 = "/^(13[4-9]|15[0189]|18[238])\d{8}$/";如果是只判断手机号码
//检测手机号码的正则表达式
$regex2 = "/1[358]\d{9}/";//简单的手机号码正则表达式匹配邮箱
E-mail最简单的形式为user@qq.com
其中user为用户名,qq为域名,com为后缀
一般用户名由3个以上的字母和数字组成,一般为16位,允许出现下划线,中间一个@符号
后面域名长度为1-64位,后缀长度一般为2-5位
需要检测邮箱
$mail = "mrchenanan@163.com";正则表达式,匹配用户名长度为3-16位,紧跟一个@符号,然后1-64位的域名,
然后是一个.符号,最后是2-5位的后缀
//邮箱的正则表达式
$regex3 = "/w{3,16}@\w{1,64}\.\w{2,5}/";
/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/
/^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$/上述正则表达式能匹配大多数的邮箱,比如xxx_yyy@ya-hoo.com.cn这样的地址,后面的.cn就无法匹配到。
if(!preg_match($regex1,$mobile)){
echo '<script>正确</script>';
}else{
echo '<script>错误</script>';
}过滤所有HTML标签
匹配嵌套的尖括号, \/?表示斜杠可有可无,这样就可以匹配标签的起始和关闭位置
[^>]+ 的意思是,如果不是又尖括号的字符重复一次和更多次
$regex4 = "<\/?[^>]+>";
$str = "<div>哈哈</div>";
preg_replace($regex4,'',$str);//用正则去匹配,替换为空
echo $str;有时候,我们需要保留部分HTML标签,既不造成安全问题,又能使页面内容更丰富,这就可以利用UBB代码功能来实现
用正则表达式实现UBB标签的功能比较麻烦
通过PHP内置的函数strip_tags函数可以容易做到白名单功能,即保留比较 安全 的标签
$text = '<p>mrchen.</p><!--commetnt--><a href="mrchen.top">个人网站</a>';
echo strip_tags($text);//去除所有的HTML标签和PHP标签
echo "<br/>";
echo strip_tags($text,'<p><a>');//允许<p>和<a>