JavaScript学习1:正则表达式

        其实在学习JavaScript之前就知道正则表达式的概念,记得第一次听说是在学习专业课的时候,那门课程叫做《形式语言与自动机理论》,到现在我还清楚的记得当时学这门课程的时候,那种痛苦,一个学期学下来,根本不知道这门课到底在讲什么,有什么用?

        后来在准备软考的时候,又一次的接触到了这块的内容,终于是知道了,这门课通篇都在介绍一种叫做文法的东西,乔姆斯基体系将文法分为了四类,分别是0型文法(短语文法)、1型文法(上下文有关文法)、2型文法(上下文无关文法)和3型文法(正则文法),而我们今天要谈到的是正则文法产生表达式,即为正则表达式。

        什么是正则表达式?

        RE(RegularExpression)是一个描述字符模式的对象。在JavaScript中的RegExp类表示正则表达式,而String和RegExp都定义了使用正则表达式进行强大的模式匹配和文本检索与替换的函数。

        为什么使用正则表达式?

        假设用户需要在HTML表单中填写姓名、地址、出生日期等信息,那么在将表单提交到服务器做进一步处理之前,JavaScript程序会检查表单以确认用户的输入是合法有效的。而程序中的正则表达式主要用来验证客户端输入的数据,是否符合要求,这样做可以节约大量的服务器端的系统资源,提高系统性能,并且提供了更好的用户体验。

        如何使用正则表达式?

        在JavaScript中有两种创建正则表达式的方式,一种是采用new运算符,另一个是采用字面量的方式。

        使用new运算符创建

        Varstr=new RegExp(’模式字符串’,’模式修饰符(可有可无)’);

        使用字面量方式创建

        Varstr=/模式字符串/模式修饰符;

        这个模式修饰符是一个可选参数,主要有以下几种

 JavaScript学习1:正则表达式_第1张图片

        创建完之后,就要使用正则表达式了,RegExp对象包含两个方法:text()和exec(),功能基本相似,用于测试字符串匹配。Test()方法在字符串中查找是否存在指定的正则表达式并返回布尔值。Exec()方法也是查找指定的正则表达式,如果执行成功,返回包含该查找字符串的相关信息数组,否则返回null。

        了解了以上的基础知识后,接下来我们就要进阶了,正则表达式元字符是包含特殊含义的字符,它们有一些特殊功能,可以控制匹配模式的方式,反斜杠后的元字符将失去其特殊含义,我们越来越像实际使用中靠近了。下面我介绍最常用的字符类,如下:

  JavaScript学习1:正则表达式_第2张图片

JavaScript学习1:正则表达式_第3张图片

        当然还有其他的字符类,比如空白字符、锚字符、替代字符和记录字符等,这里不再多做介绍,下面我们来看看如何使用字符类去自己编写正则表达式,完成我们想要的验证。

        先来做个手机号码的验证表达式

var pattern=/[1][0-9]{10}/;
var tel='18890089706';
if(!pattern.test(tel))
	alert('请输入正确的手机号码!');

        最后我们利用刚学到的知识,做一个验证邮箱地址的函数     

function VerifyMail(mail){
	var pattern =/^([\w\.\-]+)@([\w\-]+)\.([a-zA-Z]{2,4})$/;
	var str=mail;
	if (pattern.test(str))
		alert('您输入的邮箱正确无误!');
	else
		alert('对不起!请您输入合法的邮箱地址!');
		
};
//调用函数验证邮箱是否正确
VerifyMail('[email protected]');

        小结:JavaScript的学习是非常重要的,之所以总结正则表达式的内容,一个是因为以前觉得这个东西很神奇,不是很理解,再者是因为这个很重要,在做Web开发时,表达提交是家常便饭,那么提交内容的验证就随之而来,我们总不能把所以的验证操作都交给服务器吧,那样效率大大滴不好啊。

你可能感兴趣的:(【JavaScript】,JavaScript编程基础)