美文网首页
【融职培训】Web前端学习 第3章 JavaScript基础教程

【融职培训】Web前端学习 第3章 JavaScript基础教程

作者: lmonkey_01 | 来源:发表于2020-06-16 14:14 被阅读0次

    一、正则表达式概述

    正则表达式用于匹配字符串,例如我们想验证某一个字符串是否为邮箱格式,可以使用正则表达式判断;我们希望特换一片文章中的所有英文字母,可以使用正则表达式;我们想截取一片文章中的某些内容,也可以使用正则表达式。

    正则表达式对象RegExp是JavaScript中的内置对象,我们可以像创建数组一样创建它。

    1vararr =newArray();//创建数组2varreg =newRegExp();//创建正则表达式

    在开发中,我们一般用简写的方法创建正则表达式,同样和数组比较,代码如下

    1vararr = [1,2,3];//创建数组2varreg = /123/;//创建正则表达式

    二、正则表达式语法

    正则表达式可以用来匹配字符串,我们可以把正则表达式看做是一种规则,如果字符串中的内容符合这种规则,就会匹配,如果不符合这个规则,就不会匹配

    1varreg = /123/;//创建了一个正则表达式,这个正则表达式可以匹配字符串"123"2varstr = "123";//创建字符串"123"3console.log(reg.test(str));//test方法可以测试字符串是否成功匹配,匹配返回true,不匹配返回false

    我们可以看到程序在控制台输出了true,因为reg定义的时候就是为了匹配字符串123的,我们再来看下面的例子

    1varreg = /123/;2varstr = "012345";3console.log(reg.test(str));//仍然返回true

    我们将字符串改成了"12345",返回结果仍然返回true,这是因为我们定义的正则表达式可以匹配任何包含"123"的字符串,为了证实这个说法,我们可以使用exec方法来输出匹配的内容

    1varreg = /123/;2varstr = "012345";3console.log(reg.exec(str));//exec方法返回一个数组,数组中包含匹配的内容,如果未匹配,返回null

    这段代码在控制台输出了一个数组,数组的第一个元素是匹配的内容,大家可以看到匹配的内容是"123",数组还带有两个属性,index表示从字符串中第几个字母开始匹配,input表示匹配的字符串的值。

    有的时候,我们希望我们写的正则表达式只能匹配"123",如果是字符串包含"123"页不匹配,如果希望这样的话,我们需要改进我们的正则表达式

    1varreg = /^123$/;//^表示开头,$表示结尾,两个符号之间是匹配的内容2varstr = "012345";3console.log(reg.exec(str));

    这样就可以只能匹配字符串"123",但是如果正则表达式是直接把要匹配的内容写在正则表达式里,那意义也不是很大,接下来我们用正则表达式强大的语法来匹配各种字符串。

    设定匹配范围

    正则表达式可以通过[]设定匹配的范围,代码如下

    1varreg = /[123]/;//匹配123中的任意一个字符2varstr = "02468";  3console.log(reg.exec(str));

    通过指定范围,正则表达式成功匹配了字符串中的数字2。

    匹配数字

    正则表达式可以在匹配范围中定义[0-9]来设定匹配数字

    1varreg = /[0-9]/;//匹配一位数字2varstr = "02468";  3console.log(reg.exec(str));

    虽然字符串中都是数字,但是一个[]只能表示匹配一位数字,所以这里匹配的是0

    匹配字母

    正则表达式可以在匹配范围中定义[a-z]来设定匹配字母

    1varreg = /[a-z]/;//匹配一位字母2varstr = "012345abcde";  3console.log(reg.exec(str));

    与匹配数字类似,上面的正则表达式可以匹配一位字母。

    匹配多位

    上面的匹配内容匹配的都是一位数字或字母,我们可以通过+来指定匹配多位

    1varreg = /[a-z]+/;//匹配多位字母2varstr = "012345abcde";  3console.log(reg.exec(str));

    上面的代码表示匹配多位字母,所有abcde都成功的被匹配

    匹配指定位数

    有的时候我们需要匹配指定位数的字符,可以通过{}指定匹配的位数

    1varreg = /[a-z]{3}/;//匹配3位字母2varstr = "012345abcde";  3console.log(reg.exec(str));

    下面我们来定义一个正则表达式来匹配一个邮箱格式的字符串,我们先来确定一下邮箱的格式:

    5~12位的数字字母下划线开头

    后面接@

    后面接2~5位的数字和字母

    后面接.

    后面接com

    1varreg = /^[a-zA-Z0-9\_]{5,12}\@[a-zA-Z0-9]{2,5}\.com$/; 2varstr = "test123@qq.com";//邮箱  3console.log(reg.exec(str));

    很多特殊符号在正则表达式都有特殊含义,为了取消它的特殊含义,我们需要在特殊符号之前加“\”将其转义。、

    三、表单验证

    通过上面的学习,我们已经对正则表达式有了初步的了解,下面我们来实现一个表单验证邮箱的功能,验证通过或者不通过,都要在文本框后面输出结果

    1 2 3 4varinput = document.querySelector("input"); 5varspan = document.querySelector("span"); 6varreg = /^[a-zA-Z0-9\_]{5,12}\@[a-zA-Z0-9]{2,5}\.com$/;  7input.onblur =function(){ 8if(reg.test(this.value)){ 9span.innerHTML = "验证通过";10}else{11span.innerHTML = "验证失败";12        }13    }14

    四、总结

    在实际项目中,我们通常会用插件去实现字符串验证的功能。所以,大家了解了正则表达式基本语法之后,再去学习那些深度的东西

    课后练习

    使用正则表达式,完成手机号验证;

    使用正则表达式,完成邮箱验证;

    【融职教育】在工作中学习,在学习中工作

    相关文章

      网友评论

          本文标题:【融职培训】Web前端学习 第3章 JavaScript基础教程

          本文链接:https://www.haomeiwen.com/subject/tctrxktx.html