自从用了回复可见的功能
网友们的昵称和邮箱真是千奇百怪啊
所以我还是折腾下吧
把Emlog的评论的昵称和邮箱匹配弄一下吧
默认的Emlog评论表单验证的时候,
它只是做做样子,
基本是昵称和邮箱不为空
控制昵称字符长度
没有具体的
所以还是完善一下吧
来来我们先唠叨一下.

正则表达式的定义

正则表达式是由普通字符和特殊字符(也叫元字符或限定符)组成的文字模板. 如下便是简单的匹配连续数字的正则表达式:

  1. /[0-9]+/  
  2. /\d+/  

“\d” 就是元字符, 而 “+” 则是限定符.

元字符

元字符描述
.匹配除换行符以外的任意字符
\d匹配数字, 等价于字符组[0-9]
\w匹配字母, 数字, 下划线或汉字
\s匹配任意的空白符(包括制表符,空格,换行等)
\b匹配单词开始或结束的位置
^匹配行首
$匹配行尾

反义元字符

元字符描述
\D匹配非数字的任意字符, 等价于[^0-9]
\W匹配除字母,数字,下划线或汉字之外的任意字符
\S匹配非空白的任意字符
\B匹配非单词开始或结束的位置
[^x]匹配除x以外的任意字符

可以看出正则表达式严格区分大小写.

重复限定符

限定符共有6个, 假设重复次数为x次, 那么将有如下规则:

限定符描述
*x>=0
+x>=1
?x=0 or x=1
{n}x=n
{n,}x>=n
{n,m}n<=x<=m
好了言归正传,都说记录,具体我就不说了
 
  1. if (empty($name)) {  
  2.  emMsg('评论失败:请填写姓名');  
  3. elseif (strlen($name) > 15  || !preg_match('/[\x{4e00}-\x{9fa5}-a-zA-Z0-9]/iu',$name)) {  
  4. emMsg('评论失败:姓名不符合规范');  
  5. elseif (empty($mail) || !preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$mail)){   
  6. emMsg('评论失败:邮件地址不规范或未填写邮件地址', 'javascript:history.back(-1);');  
  7. }