在《学习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+&@#\/%=~_|!:,.;]*)?((?#parameters)\?[A-Z0-9+&@#\/%=~_|!:,.;]*)?/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正则表达式验证邮箱与网址
转载于:https://blog.51cto.com/dabentu/972725