10.1 正则表达式简介
正则表达式(Regular Expression,Res)是专门用于操作字符串的规则,这些规则由一些符号所组成,是一个描述字符模式的对象。可以说任何一种编程语言都提供这种机制,它主要是提供了对字符串的处理能力。
正则表达式主要用来验证客户端的输入数据。用户填写完表单单击“提交”按钮之后,表单就会被发送到服务器,在服务器端通常会用PHP、ASP.NET、JSP等服务器脚本对其进行进一步处理。那么在将表单提交到服务器进一步处理前,JavaScript程序会检查表单以确认用户确实输入了信息并且这些信息是符合要求的。因为客户端验证,可以节约大量的服务器端的系统资源,并且提供更好的用户体验。
正则表达式最初源于神经系统方面,若干年后,一位名叫Stephen Kleene的数学科学家,在基于早期神经系统研究工作的基础之上,发表了一篇题目是《神经网事件的表示法》的论文,利用称为正则集合的数学符号来描述此模型,引入了正则表达式的概念。之后一段时间,人们发现可以将这一工作成果应用于其他方面。UNIX的主要发明人Ken Thompson就把这一成果应用于计算搜索算法的一些早期研究,他将此符号系统引入编辑器QED,然后是UNIX上的编辑器ed,并最终引入grep。从此正则表达式逐渐被引入到多种语言中。
一个正则表达式就是由普通字符(例如字符a~z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
正则表达式提供了功能强大、灵活而又高效的方法来处理文本。String和JavaScript的RegExp对象都定义了使用正则表达式进行强大的模式匹配和文本检索与替换的函数,包括:匹配、查找、替换、切割等。