Linux 版 (精华区)

发信人: fgr (乱舞势力), 信区: Linux
标  题: 处理常规表达式
发信站: 紫 丁 香 (Thu Jan 20 19:54:55 2000) WWW-POST

处理常规表达式 
我们稍微讲讲用ereg()和eregi()两个函数处理常规表达式。前面我已经提过,这些函数
有的很简单,有的很复杂,看您的实际需要而定。 

使用常规表达式,您可以对一个字符串进行检查,搜索其中的一些结构模式,判定这些模
式是否满足您的规定。最普遍的用法包括检查电子邮件地址是否有效(当然,即使这种办
法判定有效,也不能保证邮件地址真的存在)。 

我们在这里不细究常规表达式的复杂细节了,仅仅给出几个实例。您可以使用上一页中用
过的表格 - 把相应的程序代码复制过来,添加到下面的代码段中,就可以看到它是怎样
工作的。 

首先,我们要确保表格中各栏只能输入字母。下面的常规表达式在用户输入一个或多个小
写字母时判定为真,而输入数字是不允许的: 


if (!ereg("[a-Z]", $first) || !ereg("[a-Z]", $last)) { 
现在我们更进一步,检查字符串的长度是否是四到六位字符长。用[[:alpha:]]是检查字
符是不是字母的简单方式。大括号内的数字检查字符个数。还要说明的是,^ 和 $ 分别
代表字符串的开始和结束。 


if (!ereg("^[[:alpha:]]{4,6}$", $first) || !ereg("^[[:alpha:]]{4,6}$", 
$last)) { 
最后,我们来构造一个常规表达式,来检验电子邮件地址的有效性。这种检验方式的效果
已经引发了相当多的讨论。没有什么东西是十全十美的,不过我下面给出的这段程序还是
十分奏效的。 

我这段宝贝程序是从PHP邮件讨论组上得来的。那可是个好去处 - 常去看看吧。不错,这
段程序看起来是有点乱糟糟的。 



if (!ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'.

'@'.

'[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'.

'[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$', $last)) {

别花太多时间来细究这段代码了,还是先到下一页内容吧。>> 

--
看到五代说:"我喜欢的女孩...很会吃醋,任性,爱哭,易怒...但是,她的微笑...
            就是我最大的幸福..."
看到响子说:"我只要你答应我一件事;哪怕是一天,你一定要比我活得更久,我再也
            不要一个人孤孤单单的活下去了!"
总是很动情。 


※ 来源:·紫 丁 香 bbs.hit.edu.cn·[FROM: 202.118.233.21] 
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.233毫秒