在《学习php和mysql》中,我最看不懂的就是正则表达式验证数据那一部分的内容。但是没有办法,数据必须验证,硬着头皮看了一下php正则表达式,最后发现也不是特别难。那么,什么是正则表达式呢?

正则表达式由一些普通字符和一些元字符(metacharacters) 组成。普通字符包括大小写的字母和数字,而元字符则具有特殊的含义,我们下面会给予解释。   在最简单的情况下,一个正则表达式看上去就是一个普通的查找串。例如,正则表达式"testing"中没有包含任何元字符,它可以匹 配"testing"和"123testing"等字符串,但是不能匹配"Testing"。

摘自百度百科正则表达式的定义。

我做的是一个评论系统,验证的是用户邮箱和网址是否合法。看了书上的基础用法之后,也不是能够完全领会,就在网上搜索了一下别人写好的邮箱与网址的正则表达式。下面列举一下:

首先是验证邮箱部分的

1
2
3
4
5
6
7
8
<pre data-accusearea= "aContent" >1.
'/^([\w\.\_]{2,10})@(\w{1,}).([a-z]{2,4})$/' ;
 
2.
'/^[_.0-9a-z-a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$/'
 
3.
/^[0-9a-z]+@(([0-9a-z]+)[.])+[a-z]{2,3}$/

可以参考一下这篇php正则匹配邮箱的文章《php邮箱地址正则表达式实现与详解》。我觉得讲的很详细。

下面是php正则匹配url的

1
2
3
4
5
1.
/http:[\/]{2}[a-z]+[.]{1}[a-z\d\-]+[.]{1}[a-z\d]*[\/]*[A-Za-z\d]*[\/]*[A-Za-z\d]*[.]*html/
 
2.</pre>
<pre id= "best-answer-content" data-accusearea= "aContent" >/\b((? #protocol)https?|ftp):\/\/((?#domain)[-A-Z0-9.]+)((?#file)\/[-A-Z0-9+&amp;@#\/%=~_|!:,.;]*)?((?#parameters)\?[A-Z0-9+&amp;@#\/%=~_|!:,.;]*)?/i'

验证网址的部分我看的不是很懂,邮箱的倒是更清晰一点。最后我自己写了2个正则验证邮箱和网址的正则表达式。

1
2
3
4
5
验证邮箱的:
'/\b[a-zA-Z0-9._%-]+@[a-zA-Z0-9._%-]+\.[a-z]{2,4}\b/'
 
还有验证url的:
'/\b[a-zA-Z0-9._%-]+\.[a-z]{2,4}\b/'

这些都是简单的正则验证,不过却是让我对正则表达式有了一些基本的认识。:)

(全文完)

若非注明,均为原创文章,转载请注明: 转载自大 笨 兔

本文链接地址: php正则表达式验证邮箱与网址