JavaScript的学习笔记(day07)

本文详细介绍了正则表达式的基本概念、创建方式、字符分类、实例方法如exec和test,以及正则表达式的语法特性,如边界符、字符类和数量词。同时,讨论了正则表达式的贪婪与非贪婪模式,以及在JavaScript中的应用,如搜索、匹配、分组和引用。此外,还提到了String对象对正则表达式的支持方法,如search、match、split和replace。
摘要由CSDN通过智能技术生成

1.正则表达式的概念:

由字符序列形成的搜索模式 可以通过搜索模式的描述查询内容 用于所有的文本搜索和替换

2.正则表达式的创建:

  字面量模式:var reg = /hello/g;
  构造函数模式:var reg = new RegExp('hello', 'g')

hello式正则表达式的内容,g是正则表达式的皮匹配模式 g =》 global全局匹配 m =》 multiline 多行匹配 i =》 ignoreCase 匹配时忽略大小写

3.字符的分类

普通字符:字母,数字,下划线,汉字,一些没有特殊意义的符号
特殊字符:\ 把特殊字符转化成普通字符

4.正则表达式的实例方法

  reg.exec(str) 用于判断str字符串中是否存在与reg相匹配的字符串段,返回一个数组,
  包含匹配的内容 index(匹配内容的在字符串中的起始位置) input(与reg匹配的字符串) groups(与reg匹配的字符串所在的组)
  当未能匹配到相应的字符串时返回null
  reg.test(str) 用于判断str字符串中是否存在于reg相匹配的字符串段,如果有返回true,没有则返回false
  注意:当使用exec方法来进行循环匹配字符串时,必须使用全局匹配。因为在正则表达式中存在一个lastIndex属性,而使用全局模式会维护这个属性
  即每次使用时都会随着字符串的匹配进行更新,而不是全局模式时,该属性并不会进行维护,即每次调用时,该属性都是0,不会随着字符串的匹配而更新
  reg.toString()/toLocalString() 转化成为字面模式下的字符串形式
  reg.valueOf() 返回正则表达式本身

5.正则表达式的实例属性:

  lastIndex:匹配时最后的字符,当每次重新调用实例方法时起点更新为上一次的lastIndex,当test返回false时归零。当没有设置全局匹配时,默认为0
  ignoreCase,global,multiline:正则表达式的三种匹配模式
  source:返回字面量形式的正则表达式
## 6.正则表达式语法:
  直接量字符:正则表达式支持的匹配字符
    数字和字母字符:匹配自身
    \o :匹配Null字符
    \t : 匹配制表符
    \n : 匹配换行符 
    \v : 匹配垂直制表符
    \f : 匹配换页符
    \r : 匹配回车符
  字符集合:字符组,表示所需要的匹配的字符集合,匹配其中一个就行 用[]包裹 例:[0-9] 起始字符与结尾字符用 “-” 相连
  例:
    [abc] 字符串中匹配a,b,c中的任意一个
    [0-9] 字符串中匹配0到9中的任意一个
    [^xyz] 字符串中不存在匹配x,y,z中的任意一个
  边界符:对边界进行字符串匹配,即开头和结尾
  ^ : 匹配文本开始 /^abc/匹配以abc开头的字符串
  $ : 匹配文本结束 /abc$/匹配以abc结尾的字符串
  注意:当边界符 ^ 和 $ 一起使用时,表示精确匹配,即/^abc$/匹配的是a,b,c这三个字母,而不是以abc开头和结束的字符串
  这种方法只会匹配一个字符
  \b : 零宽单词边界 表示一个单词(而非字符)边界,也就是单词和空格之间的位置,或者字符(\w)与字符串开头或者结尾之间的位置。
  \B : 非零宽单词边界 与\b相反
  字符类:用于简便表示一个特定字符集合
    . : 匹配除了换行符\n 和回车符\r 之外的任意一个字符
    \d : 匹配一个数字字符 [0-9]
    \D : 匹配一个非数字字符 [^0-9]
    \w : 匹配包括下划线在内的任意单个字符和数字 [a-zA-Z0-9_]
    \W : 匹配除了包括下划线在内的任意单个字符和数字 [^a-zA-Z0-9_]
    \s : 匹配任何的Unicode空白字符,即空格,制表符,换页符等 [\f\r\t\n]
    \S : 匹配除了Unicode空白字符的其他字符 [^\f\r\t\n]
  数量词:用于表示该字符出现的次数
    * : >=0次
    + : >=1次
    ? : 0/1次
    {n} : n次
    {n,} : >=n次
    {n,m} : >=n <=m次
  重复模式:
    贪婪模式:默认模式,当存在一个匹配次数区间时,优先选择最大的次数进行匹配
      /\d{3,6}/g 优先匹配最多的次数 6
    非贪婪模式:存在匹配次数区间时,选择最少的匹配次数进行匹配
      /\d{3,6}?/g 优先匹配次数少的次数 3

7.选择,引用,分组

  选择: /html|css|js/ 表示匹配html,css,js中的任意一个
  分组: /abcabcabc/ =》 /(abc){3}/ 表示对该正则表达式进行了分组为三段abc
  引用: /(\d{4})-(\d{2}-(\d{2}))/ RegExp.$1 表示引用了(\d{4})
  注意:在引用之前要使用test/exec才能进行捕获引用
  嵌套分组的捕获:从左至右依次查看左小括号的包裹对象,其包裹对象就是捕获的顺序
  引用的使用注意:当使用引用时,如果编号越界了,则该引用会被解析成为普通的表达式

8.String对正则表达式的支持方法

search:str.search(reg) 查找字符串中是否存在匹配正则的字符串,有则返回第一次出现的位置,没有返回null
match: str.match(reg) 匹配字符串中符合正则表达式的字符串,返回一个数组,包含字符串的内容和位置
split: str.split(reg) 将字符串以某种形式进行分割
replace:str.replace(reg, 'other') 查找满足条件的字符串,并替换为任意字符串
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值