戊辰人博客

青,取之于蓝而青于蓝;冰,水为之而寒于水。

PHP中元字符与转义

日期:2015年4月16日 作者: 分类:编程 阅读:489

正则表达式中具有特殊含义的字符称之为元字符,常用的元字符有:

 \ 一般用于转义字符
 ^ 断言目标的开始位置(或在多行模式下是行首)
 $ 断言目标的结束位置(或在多行模式下是行尾)
 . 匹配除换行符外的任何字符(默认)
 [ 开始字符类定义
 ] 结束字符类定义
 | 开始一个可选分支
 ( 子组的开始标记
 ) 子组的结束标记
 ? 作为量词,表示 0 次或 1 次匹配。位于量词后面用于改变量词的贪婪特性。 (查阅量词)
 * 量词,0 次或多次匹配
 + 量词,1 次或多次匹配
 { 自定义量词开始标记
 } 自定义量词结束标记
//下面的\s匹配任意的空白符,包括空格,制表符,换行符。
//[^\s]代表非空白符。[^\s]+表示一次或多次匹配非空白符。
$p = '/^我[^\s]+(苹果|香蕉)$/';
$str = "我喜欢吃苹果";
if (preg_match($p, $str)) {
    echo '匹配成功';
}

阅读全文…

ThinkPHP中自动验证时常用的正则表达式

日期:2015年1月6日 作者: 分类:编程 阅读:651

ThinkPHP的自动验证机制是为了进行表单数据验证,验证可以支持function、 callback、confirm、equal、unique和regex,这里要讲的是使用正则表达式进行验证。

一般我们见的比较多的是设置规则为require、email之类的,其实这些本身也是属于正则表达式验证方式,只是系统内置定义了一些常用的正则表达式而已。这些内置的正则表达式的定义可以参考model类的regex方法,内置支持的正则定义包括:

require 字段必须、email 邮箱、url URL地址、currency 货币、number 数字、zip 邮编、integer 整数、double 浮点数、english 英文字母,但是并不局限于这些正则规则的,我们完全可以直接在验证规则里面使用正则表达式进行定义,这样我们可以凭借强大的正则表达式来进行表单字段验 证,例如:

array(‘name’,’/^[a-z]\w{3,}$/i’,’名字不符合要求!’);
array(‘password’,’/^[a-z]\w{6,30}$/i’,’密码不符合要求!’);
array(‘account’,’/^[A-Za-z]+$/’,’账号必须使用英文!’);

阅读全文…