正则:8个你必须知道的表达式(图文教程)

分类:jQuery, 学习笔记 发表时间:2009年08月11日 字体大小:12号14号

正则表达式的背景:

维基百科中这么说到:
正则表达式(英文:Regular Expression):在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容。许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。“正则表达式”通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。

今天我说到的8个正则表达式将会用来匹配:用户名、密码、邮件地址、16进制表达式(如:#cccccc)、slug地址(如:eight-regular-expressions)、URL地址、Ip地址以及HTML标签。在下面的讲解中会结合图片给大家讲解,这样你会更容易地理解这些表达式。

1.匹配英文用户名:

username

表达式:/^[a-z0-9_-]{3,16}$/

可以匹配的字符串:my-us3r_n4m3

不能匹配的字符串:th1s1s-wayt00_l0ngt0beausername (太长了!)

2.匹配密码:

password

表达式:/^[a-z0-9_-]{6,18}$/

可以匹配的字符串:myp4ssw0rd

不能匹配的字符串:mypa$$w0rd(包含了一个美元符号!)

3.匹配16进制表达式:

hex

表达式:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/

可以匹配的字符串:#a3c113

不能匹配的字符串:#4d82h4 (包含了字母h,字母h不属于16进制的字符!)

4.匹配slug地址:

slug

表达式:/^[a-z0-9-]+$/

可以匹配的字符串:eight-regular-expressions

不能匹配的字符串:eight_regular_expressions(包含了下划线!)

5.匹配邮箱地址:

email

表达式:/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/

可以匹配的字符串:hiro.zhd@gmail.com

不能匹配的字符串:hiro.zhd@gmail.something(域名的后缀过长!)

6.匹配URL地址:

url

表达式:/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/

可以匹配的字符串:http://www.ihiro.org/

不能匹配的字符串:http://www.ihiro.org/about!.html(包含了特殊字符“!”!)

7.匹配IP地址:

ip

表达式:/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/

可以匹配的字符串:73.60.124.136(这不是我的ip哦,请不要试图访问,呵呵!)

不能匹配的字符串:256.60.124.136(超过255了!)

8.匹配HTML标签:

htmltag

表达式:/^< ([a-z]+)([^<]+)*(?:>(.*)< \/\1>|\s+\/>)$/

可以匹配的字符串:<a href=”http://www.ihiro.org/”>Nettuts+</a>

不能匹配的字符串:<a href=”http://www.ihiro.org/” title=”Hiro’s blog >”>Nettuts+</a>(标签属性包含了特殊字符!)

文章内容整理来自:http://net.tutsplus.com/tutorials/other/8-regular-expressions-you-should-know/

最热评论文章列表:

不错不错,已经有 个评论!
  1. 沙发

  2. 呵呵,了解~~

    ps:图好漂亮啊~~怎么做的?

    • 你没看到我最后一句话吗?我是从国外的博客整理来的!!

  3. 你怎么把功能栏撤了啊?

  4. 好强啊,
    小声的说一下,网站首页打开将IE卡死.Verizon 6.

    • 经测试,很正常的啊!是不是你的网速问题?

  5. Yo2

    这张皮很可爱啊!呵呵~
    上面那些公式看不懂~智商低啊~囧

  6. 我可以继续不知道这8个表达式吗?

    • 呵呵,当然可以的啊!我这个必须知道是对开发人员说的!!

  7. 我也挺喜欢Nettuts上的文章的,讲得太好了..呵呵.不过英文要过关.

  8. 链接已经加上了,大家以后多来往哈。交流技术和生活^!^

  9. 这个很复杂啊

  10. 在图片中 我看到许多表情。。。

    • 你太有才了。。。

  11. 虽然这些正则有问题,但是作为一个入门教程非常不错。我在Tuts看到,差点想翻译,幸亏搜索到你的文章。
    看了一下你关注点,嗯,Feed了。
    我没找到你博客的About,请问有么?

    • 没有About页面的,没写!

我要评论

  • * *