查看: 939|回复: 15
|
PHP大家来研究Regular Expression
[复制链接]
|
|
Regular Expression, 其实说难也不是很难, 说容易也不容易,希望大家能够在此讨论讨论。
1)Email Validation
- 一定要有@
- 在@的前端部分只能用a到z , 0到9和. , 而且.不能在第一个位置和@的前面。
- 在@的后半部分是Valid的Domain. |
|
|
|
|
|
|
|

楼主 |
发表于 19-6-2007 11:34 PM
|
显示全部楼层
我先来放后半部也就是Domain的部分!
^[a-z0-9]+[a-z0-9\.]*[a-z0-9]+.([a-z0-9]+|[a-z0-9]+.[a-z0-9]+[a-z0-9\.]*[a-z0-9]+)$
以上的只是Domain的Validation,有没有更简短的方法 ? 因为要Handle Multiple dot,subdomain等等! |
|
|
|
|
|
|
|

楼主 |
发表于 19-6-2007 11:36 PM
|
显示全部楼层
以下是网上找到的, 不过看来好像能够接受第一个Char是dot.
^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$ |
|
|
|
|
|
|
|
发表于 20-6-2007 10:51 AM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 20-6-2007 10:31 PM
|
显示全部楼层
/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
值得一提的是,有直接link过去3rd party来检查email是否真的存在于网上的方法,缺点是要等两三秒吧,这样就不用怕别人放假email了. |
|
|
|
|
|
|
|

楼主 |
发表于 20-6-2007 11:21 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 21-6-2007 01:23 AM
|
显示全部楼层
原帖由 亡者之疯 于 20-6-2007 10:31 PM 发表
/^(+(?:\.+)*)@((?:+\.)*\w{0,66})\.({2,6}(?:\.{2})?)$/i
值得一提的是,有直接link过去3rd party来检查email是否真的存在于网上的方法,缺点是要等两三秒吧,这样就不用怕别人放假email了.
一般上不是都用激活方法? |
|
|
|
|
|
|
|
发表于 21-6-2007 10:48 AM
|
显示全部楼层
回复 #5 亡者之疯 的帖子
愿请告知什么third party  |
|
|
|
|
|
|
|
发表于 21-6-2007 02:25 PM
|
显示全部楼层
原帖由 belon_cfy 于 20-6-2007 11:21 PM 发表
你的Regular Expression以下的情况会不会成立?
123.123@_YAHOO.COM
PAISAY
我的有问题...
这个才对...
^[A-z0-9-_]+([.][A-z0-9_]+)*[@][A-z0-9-_]+([.][A-z0-9_]+)*[.][A-z]{2,4}$ |
|
|
|
|
|
|
|
发表于 21-6-2007 02:31 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 22-6-2007 12:04 AM
|
显示全部楼层
原帖由 hui_wooi 于 21-6-2007 01:23 AM 发表
一般上不是都用激活方法?
嗯,在某些情况是不便用或不能用激活的..
例1: 若你的网站提供newsletter的订阅服务,却没提供其他有条件的服务(如必须是会员才能使用的服务)的话,站在用户便利的角度来说,步骤越短越好.
系统管理的角度来说,也没必要发送邮于件一些不存在,或已经passive的邮址..节省资源..
例2: 在某些情况下,需要收集一大堆邮址,却又要验证邮址是否存在的话....当然可以用这个,譬如说spam junk mail(打广告),所以大概知道那些email是否还active,然后就可以...
例3: 使用推荐网址给朋友的服务...所以不可能"激活"他们的吧...
[ 本帖最后由 亡者之疯 于 22-6-2007 12:27 AM 编辑 ] |
|
|
|
|
|
|
|
发表于 22-6-2007 12:37 AM
|
显示全部楼层
原帖由 亡者之疯 于 22-6-2007 12:04 AM 发表
嗯,在某些情况是不便用或不能用激活的..
例1: 若你的网站提供newsletter的订阅服务,却没提供其他有条件的服务(如必须是会员才能使用的服务)的话,站在用户便利的角度来说,步骤越短越好.
系统管理的角度来说 ...
说得好。 |
|
|
|
|
|
|
|
发表于 22-6-2007 02:55 AM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 22-6-2007 09:42 AM
|
显示全部楼层
原帖由 亡者之疯 于 20-6-2007 10:31 PM 发表
/^(+(?:\.+)*)@((?:+\.)*\w{0,66})\.({2,6}(?:\.{2})?)$/i
值得一提的是,有直接link过去3rd party来检查email是否真的存在于网上的方法,缺点是要等两三秒吧,这样就不用怕别人放假email了.
安
不过...3RD PARTY 的..是要钱的吗?? |
|
|
|
|
|
|
|
发表于 22-6-2007 07:06 PM
|
显示全部楼层
原帖由 iZoC 于 22-6-2007 09:42 AM 发表
安
不过...3RD PARTY 的..是要钱的吗??
不用钱的。。。都是open source。
不过。。印象中。。好像也有付费的。。 |
|
|
|
|
|
|
|

楼主 |
发表于 23-6-2007 01:33 AM
|
显示全部楼层
原帖由 iZoC 于 21-6-2007 02:25 PM 发表
PAISAY
我的有问题...
这个才对...
^+(+)*+(+)*{2,4}$
这个不错, 有参考价值 |
|
|
|
|
|
|
| |
本周最热论坛帖子
|