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

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

目录

    • 什么是正则表达式:
    • 创建一个RegExp 对象
    • 正则表达式的规则
      • 匹配字符串中是否含有我们指定的单个字符:
      • 匹配字符串中是否含有我们指定的多个字符:
      • 特殊字符的查找需要输入特殊的字符
      • 匹配所有的字母,或任意给定的几个字符其中之一
      • 匹配多个相同的字符
      • 正则表达式规则的组合使用
    • RegExp对象的方法和属性
    • 和正则表达式相关的一些字符串操作方法
      • 替换与正则表达式匹配的字符串之replace
        • 匹配模式之全局匹配g和忽略大小写的i
      • 找到字符串中符合正则表达式的索引之search()
      • 把字符串分割为字符串数组之split()

什么是正则表达式:

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

创建一个RegExp 对象

有两种方法:

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

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

正则表达式的规则

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

var 变量=/单个字符/匹配模式
如:正则表达式技术(升级版)_第2张图片RegExp对象的test方法可用来检测一个字符串是否符合我们定义的规则
test方法:RegExp对象.test(检测的字符串);返回值为false或true

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

var 变量=/多个字符/匹配模式
正则表达式技术(升级版)_第3张图片直接写多个字符就行,后面的g为全局匹配,不过我们这里test方法也用不到全局匹配

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

正则表达式技术(升级版)_第4张图片
“.”这个字符比较特殊,表示任意字符,这个我们可以这么用:
正则表达式技术(升级版)_第5张图片当我们想匹配一个知前知后不知中的字符串的时候就可以用这个
还有一个比较重要\w
作用:匹配字母数字或下划线:
正则表达式技术(升级版)_第6张图片exec方法:检索字符串中指定的值。返回找到的值,并确定其位置

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

匹配给定的几个字符其中之一
var 变量=/字符1|字符2/匹配模式
正则表达式技术(升级版)_第7张图片匹配字符串中含有"dg"或"Ad"
匹配任意的数字或字母
这个要用方括号,只要所匹配的字符串含有在方括号中的任意字符,即判断字符串符合规则,当然[^字符]除外,如下:
正则表达式技术(升级版)_第8张图片
如:正则表达式技术(升级版)_第9张图片
有一个[A-z]比较重要,表示所有的大小写字母,比较常用

匹配多个相同的字符

如下:
正则表达式技术(升级版)_第10张图片如:
正则表达式技术(升级版)_第11张图片
这里面n{x,y}这个可用这样用[0-9]{x,y}来规定账号位数可以为x位到y位,还有两个比较重要^$这两个可以规定账号开头必须是什么,或账号结尾必须是什么,比如:^1表示开头必须是数字1,[A-z]$表示结尾必须是字母

正则表达式规则的组合使用

如:完成我们上边的一个问题:
制定一个用户名的组成字符串只能用字母,数字,下划线,且不能用数字开头,且数量在8到16位,且结尾必须为字母
var account=/^([A-z]|_)\w{6,14}[A-z]$
正则表达式技术(升级版)_第12张图片

RegExp对象的方法和属性

有如下三种方法,test是我们一直用的一个方法
正则表达式技术(升级版)_第13张图片
RefExp对象的属性
正则表达式技术(升级版)_第14张图片

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

有这么几个
正则表达式技术(升级版)_第15张图片

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

语法:字符串.replace(正则表达式,参数);
正则表达式技术(升级版)_第16张图片这里只替换了第一个a,如果我们向全部替换就需要用到全局匹配即g

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

我们如果想让正则表达式对字符串中所有符合条件都进行匹配,则需要用到全局匹配g
如图:正则表达式技术(升级版)_第17张图片
如果要同时忽略大小写,则这样:
正则表达式技术(升级版)_第18张图片g和i的顺序没有要求

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

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

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

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



你可能感兴趣的:(js笔记,正则表达式,javascript)