正则表达式,全称“Regular Expression”,在代码中常简写为regex、regexp或RE。正则表达式,就是用某种模式去匹配一类字符串的公式(仔细琢磨这句话)。

怎么理解呢?在大多数大型网站都有注册功能,注册的表单都会有相应的验证,例如姓名表单要求输入汉字,邮箱表单必须要符合电子邮箱的模式。那程序是怎么判断用户输入的内容是否符合相应表单的要求呢?这就用到了JavaScript中的正则表达式

在电子邮箱表单中,我们使用JavaScript定义一种“模式”,如果用户输入的内容符合这种模式,就通过,如果用户输入的内容不符合这种模式,就报错。上面所说的这种模式指的就是“正则表达式”。

学习正则表达式就是学习怎样定义一种“模式”的语法,说白了,就是学习各种匹配的规则,例如匹配数字要怎么要怎么写,匹配字符怎么写等等。

正则表达式往往需要2部分内容:被验证的字符串和正则表达式。我们把“需要被验证的字符串”比喻成“需要被检验的产品”,把“正则表达式”比喻成“格式工厂”(字符串的格式工厂),这样就很形象了。一般需要被检验的产品在生产流水线时候,合格的就通过,不合格的就扔掉。现在大家对正则表达式都能很好地理解了吧?

在学习正则表达式之前,有几点要跟大家说明一下:

(1)在你学习正则表达式之前,你必须要有一定的编程基础。如果是你学习前端的,那你最好有HTML、CSS和JavaScript的基础再来学习正则表达式,因为正则表达式是JavaScript的进阶内容;

(2)正则表达式在大部分语言中的语法结构是大同小异的,学完JavaScript中的正则表达式,再去学习其他语言的正则表达式是相当容易的一件事;

(3)正则表达式是一门很有用的技术,在各种程序设计语言有着广泛的应用,通常用来处理字符串,如匹配字符串、查找字符串、替换字符串等;

       正则表达式不是某种编程语言,没有计算和处理问题的功能,它是一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。

正则表达式应用举例

  • 防止SQL注入:
  •          尤其对于网站,安全是至关重要的,写好正则表达式,能够验证输入信息,保证输入数据的合法性,不至于不法人士侵入数据库破坏网站。
  • 采集:
  •          从互联网上按照某种规则搜索想要的数据,对于分析复杂的HTML标签,正则表达式是一件利器。
  • 验证数据:
  •          无论对于软件还是网站,用户输入的数据都需要验证后再提交,以得到安全和想要的数据。


常用匹配举例:

匹配中国电话号码:
  •     形式如:0592-123456 021-123456 021-12356-555 (0511)123456
  •     表达式:"((d{3,4})|d{3,4}-)?d{7,8}(-d{3})*"
匹配中国邮政编码:
  •      形式如:215421
  •     表达式:"d{6}"
匹配电子邮件:
  •      形式如:admin@wordphp.com
  •      表达式:"w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*"
匹配由26个英文字母组成的字符串:
  •      表达式:"^[A-Za-z]+$"
匹配URL:
  •      表达式:@"^[url]http://([/url][w-]+.)+[w-]+(/[w- ./?%&=]*)?"

       别被上面那些复杂的表达式吓倒,只要跟着我一步一步来,你会发现正则表达式其实并没有你 想像中的那么困难。当然,如果你看完了这篇教程之后,发现自己明白了很多,却又几乎什么都记不得,那也是很正常的——我认为,没接触过正则表达式的人在看 完这篇教程后,能把提到过的语法记住80%以上的可能性为零。这里只是让你明白基本的原理,以后你还需要多练习,多使用,才能熟练掌握正则表达式。

总之

 1、正则表达式,就是用某种模式去匹配一类字符串的公式;

 2、学习正则表达式就是学习怎样定义一种“模式”的语法,说白了,就是学习各种匹配的规则,例如匹配数字要怎么要怎么写,匹配字符怎么写等等;

 3、正则表达式常见于表单验证、字符串操作。

 : 正则 天书

上一篇: 没有了