正则表达式以前也有接触过,只知道它是用来匹配字符串的,具体是什么,该怎么用,却没有深入研究过,现在在Javascript视频的学习中介绍到了,所以介绍的也不是特别细,但是还是挺基础的,所以借此机会研究一下。
正则表达式就是一个用于描述字符串的对象,不仅可以用来匹配字符串,也可以用来描述字符串,当然了,它的主要作用还是匹配字符串。除Javascript外,众多高级语言(Java,Asp.net等)都是支持正则表达式的。
说到匹配字符串了,初次接触的人可能不太清楚,为什么要匹配呢?该如何匹配呢?当我们在任何一个网站注册信息时,都可能会遇到提示:输入不合法,其中最多的也就是邮箱格式输入不合法。对此,就是这个正则表达式的匹配。
关于匹配,其实也就是我们常用的检索了。正则表达式就是通过“*”“?”等通配符来查询字符串,然后进行相应处理的。匹配方法有很多,例如:字符与字符串,字符类,重复类,选择符,定位符,分组,引用,标志等。而正则表达式最大的应用就是校验表单的合法性。在网络中使用比较多的验证为Email,URL,电话号码,身份证等合法性验证。
以验证Email为例,通常一个Email的格式会为“my@126.com”,因此,可以将一个Email分成3个部分:
- 用户名部分,该部分通常为英文字母,数字,“_”,“-”和“.”组成,因此可以使用“[\w-_\.]+”来表示。
- @部分,可以直接使用@表示。
- 域名部分,可以使用“(\w-]+\.)+[\w-]+”来表示。
因此,验证Email的合法性,可以使用“/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/”来表示。代码清单如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>正则表达式</title> </head> <script language="javascript" type="text/javascript"> function checkEmail(){ var checkText = form1.textName.value; var reg = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/; if (reg.test(checkText)) { return true; } else { alert("Email格式输入错误,请重新输入!"); return false; } } </script> <body> <form id="form1" name="form1" method="post" action=""> <p> <input name="textName" type="text" id="textName" /> </p> <p> <input type="submit" name="Submit" value="提交" /> <input type="button" name="Submit2" value="重置" /> </p> </form> </body> </html>怎么样,明白些了吗?