正则表达式技术(升级版)

javascript基础创作日记 Day03
时间:2021年1月23日下午 多云
这个正则表达式之前记录过一篇,但是写的太烂了,自己也没搞懂,这次仔仔细细的研究了好久再重新写这一篇

什么是正则表达式:

正则表达式用在RegExp 对象上,我们要先知道什么是RegExp 对象
RegExp 对象:
RegExp 对象表示正则表达式,它是对字符串执行模式匹配的强大工具。
在我们想规定一个字符串的组成规则时就可用RegExp对象。
如:制定一个用户名的组成字符串只能用字母,数字,下划线,且不能用数字开头,且数量在8到16位,且结尾必须为字母

创建一个RegExp 对象

有两种方法:

  1. var 变量=new RegExp("正则表达式","匹配模式");
  2. var 变量=/正则表达式/匹配模式

我们一般用第二种,第一种一般不用
上面的参数1正则表达式指的就是:我们定义规则的方式,正则表达式中最重要的就是这一部分,参数2有三种可选:在这里插入图片描述第一个即为忽略我们定义的规则中字母的大小写。第二个指把我们定义的规则,把字符串从头到尾全匹配一遍,因为一般正则表达式的执行只会匹配字符串中第一个符合条件的,后面的计算机就不会管了。第三个用不到,一般

正则表达式的规则

匹配字符串中是否含有我们指定的单个字符:

var 变量=/单个字符/匹配模式
如:在这里插入图片描述RegExp对象的test方法可用来检测一个字符串是否符合我们定义的规则
test方法:RegExp对象.test(检测的字符串);返回值为false或true

匹配字符串中是否含有我们指定的多个字符:

var 变量=/多个字符/匹配模式
在这里插入图片描述直接写多个字符就行,后面的g为全局匹配,不过我们这里test方法也用不到全局匹配

特殊字符的查找需要输入特殊的字符

在这里插入图片描述
“.”这个字符比较特殊,表示任意字符,这个我们可以这么用:
在这里插入图片描述当我们想匹配一个知前知后不知中的字符串的时候就可以用这个
还有一个比较重要\w
作用:匹配字母数字或下划线:
在这里插入图片描述exec方法:检索字符串中指定的值。返回找到的值,并确定其位置

匹配所有的字母,或任意给定的几个字符其中之一

匹配给定的几个字符其中之一
var 变量=/字符1|字符2/匹配模式
在这里插入图片描述匹配字符串中含有"dg"或"Ad"
匹配任意的数字或字母
这个要用方括号,只要所匹配的字符串含有在方括号中的任意字符,即判断字符串符合规则,当然[^字符]除外,如下:
在这里插入图片描述
如:在这里插入图片描述
有一个[A-z]比较重要,表示所有的大小写字母,比较常用

匹配多个相同的字符

如下:
在这里插入图片描述如:
在这里插入图片描述
这里面n{x,y}这个可用这样用[0-9]{x,y}来规定账号位数可以为x位到y位,还有两个比较重要^$这两个可以规定账号开头必须是什么,或账号结尾必须是什么,比如:^1表示开头必须是数字1,[A-z]$表示结尾必须是字母

扫描二维码关注公众号,回复: 12471368 查看本文章

解决上面的问题+正则表达式规则的组合使用

如:完成我们上边的一个问题:
制定一个用户名的组成字符串只能用字母,数字,下划线,且不能用数字开头,且数量在8到16位,且结尾必须为字母
var account=/^([A-z]|_)\w{6,14}[A-z]$
在这里插入图片描述

RegExp对象的方法和属性

有如下三种方法,test是我们一直用的一个方法
在这里插入图片描述
RefExp对象的属性
在这里插入图片描述

和正则表达式相关的一些字符串操作方法

有这么几个
在这里插入图片描述

替换与正则表达式匹配的字符串之replace

语法:字符串.replace(正则表达式,参数);
在这里插入图片描述这里只替换了第一个a,如果我们向全部替换就需要用到全局匹配即g

匹配模式之全局匹配g和忽略大小写的i

我们如果想让正则表达式对字符串中所有符合条件都进行匹配,则需要用到全局匹配g
如图:在这里插入图片描述
如果要同时忽略大小写,则这样:
在这里插入图片描述g和i的顺序没有要求

找到字符串中符合正则表达式的索引之search()

语法:字符串.search(正则表达式);
在这里插入图片描述因为字符串在系统底层是用数组存储起来的,所以索引从0开始
这个只能找到第一个符合条件的字符串位置,就算加入全局匹配也是只能返回第一个符合的索引

把字符串分割为字符串数组之split()

语法:字符串.split(正则表达式);
在这里插入图片描述可以看到确实把字符串从匹配的地方断开,同时删去匹配的字符,然后断开的部分分为数组的各项。
如图,因为最后一个a后面没有字符了,但是还是会把从这分一下,然后数组最后给添了一个空字符



猜你喜欢

转载自blog.csdn.net/qq_45821251/article/details/112890919