博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js正则表达式学习
阅读量:7035 次
发布时间:2019-06-28

本文共 946 字,大约阅读时间需要 3 分钟。

正则学习总结

修饰符

  • g全文搜索
  • i忽略大小写
  • m多行搜索

元字符

原意文本字符是指123等, 元字符 是在正则表达式中有特殊含义的非字母字符

* + > & $ . | \ ( ) { } [ ]

  • \t 水平制表符
  • \v 垂直制表符
  • \n换行符

字符类

符合某些特性的对象,一个泛指,而不是特指某个字符 可以使用元字符[]构建一个简单的类

例子:

表达式[abc] 把字符a或b或c归为一类,表达式可以匹配这类的字符, 若要匹配ab整体那就不用[]

'a1b2c3d4'.replace(/[abc]/g, 'x') -> 'x1x2x3d4'

并不是匹配abc一个整体

字符类取反

例子:

使用元字符 ^在中括号[]创建反向类/负向类 ,另一个意思是以xxx开始

表达式 把字符以外(不是字符a或b或c的内容)的进行替换 中括号里面加 ^

'a1b2c3d4'.replace(/[abc]/g, 'x') -> 'axbxcxxx'

范围类

[0123456789]匹配数字 太累了

使用[a-z]连接两个字符表示从a-z的任意字符 闭区间

-并不是特殊字符 若要匹配2017-03中的- 只需[0-9-]

预定义类及边界

图片描述

图片描述

量词

图片描述

正则贪婪模式

d{3,6} 12345678 => x78

正则表达式在处理的时候会尽可能多的匹配,直到匹配失败,默认是贪婪模式

正则非贪婪模式

尽可能少的匹配,一旦成功匹配,不再继续尝试

做法很简单,在量词后加上?即可
d{3,6}? 12345678 => xx78

分组

解决匹配整体的问题

图片描述

使用()达到分组的功能,使量词作用于分组
(byron){3}

使用|可以达到或的效果,加了分组可以改变边界

图片描述

反向引用

出现是变量,不是常量的概念替换, 利用$1 $2捕获分组代表

图片描述

忽略分组

不希望捕获某些分组,只需要在分组内加上?:即可

图片描述

前瞻

图片描述

前瞻概念2
图片描述

对象属性

reg.objKey

图片描述
当正则多次执行test方法的时候,匹配的结果会记忆上次匹配的位置,再循环到0重新开始 也就是lastIndex
简单解决方法是 正则不加g标志 本身也就是为了看下有没有

正则方法

  • test
  • exec

字符串对象方法

  • search
    图片描述
  • match
    图片描述

图片描述

图片描述
图片描述

  • split
    图片描述
  • replace
    图片描述

图片描述


  1. abc

转载地址:http://dufal.baihongyu.com/

你可能感兴趣的文章
Load Balance 产品横向比较
查看>>
HTML5 多线程处理
查看>>
mpls的基本概念
查看>>
【Spring Boot】20.RabbitMQ高级
查看>>
微信分享link问题
查看>>
为大家介绍Authorware中的交互功能
查看>>
Laravel 开发 RESTful API 的一些心得
查看>>
springboot项目(2)
查看>>
linux系统运维成长记
查看>>
内核参数优化/etc/sysctl.conf
查看>>
对象标签1
查看>>
MacOS下安装MongoDB数据库
查看>>
Git常用命令
查看>>
libevent学习
查看>>
动态代理的几种方式
查看>>
Collections常用方法总结
查看>>
微信小程序
查看>>
bash变量
查看>>
知识点049-supervisor
查看>>
干货满满,Android热修复方案介绍
查看>>