正则表达式

注意:加粗样式正则的核心是:要么匹配位置,要么匹配字符

一、匹配位置

模式重要说明
^匹配开头的位置,当正则有修饰符 m 时(多行文本),表示匹配行开头位置。
$匹配结尾的位置,当正则有修饰符 m 时(多行文本),表示匹配行结尾位置。
\b匹配单词边界,即匹配上面示例中的 i、love、U 前后的位置
\B匹配非单词边界,与 \b 相反,即匹配上面示例中的 o、v、e 前后的位置
(?=表达式)正向先行断言,指在某个位置的右侧必须能匹配表达式。
例如: 给定字符串我爱你 我爱他 我爱 爱你 我和你,
匹配右边是“你”的位置。正则可以这么写: /(?=你)/g
demo
如果非要加上“爱”,/爱(?=你)/g,就会匹配出
demo
(?!表达式)反向先行断言,指在某个位置的右侧不能匹配表达式。与 (?=表达式)正好相反
(?<=表达式)正向后行断言,指在某个位置的左侧必须能匹配表达式。
注意: 先行断言和后行断言只有一个区别,
即先行断言从左往右看,后行断言从右往左看。
(?<!表达式)反向后行断言,指在某个位置的左侧不能匹配表达式。

二、匹配字符

字符

字符

字符组

字符

量词

量词

括号的作用

括号的作用

正则表达式相关 API

Javascript 中可以通过以下两种方式写正则:

  • 正则表达式字面量
  • 通过构造函数 RegExp 的实例

例如,创建一个正则用于精确匹配字符串 ‘test’。

let regExp = /test/

let regExp = new RegExp('test') 
// 或者
let regExp = new RegExp(/test/)

在正则上添加修饰符
修饰符
RegExp 相关实例方法
RegExp 相关实例方法

new RegExp(/love*/).test('I love you, I love him')
// true

new RegExp(/love*/).exec('I love you, I love him')
// ['love', index: 2, input: 'I love you, I love hime', groups: undefined]

RegExp 静态属性
RegExp 静态属性
String 相关实例方法
String 相关实例方法
groups: 一个命名捕获组对象,其键是捕获组名称,值是捕获组,如果未定义命名捕获组,则为 undefined。有关详细信息,请参阅组和范围。
index: 匹配的结果的开始位置
input: 搜索的字符串。|| replace | 对目标字符串进行替换操作。正则是其第一个参数。返回替换后的字符串。

replace 第二个参数中的特殊字符
replace 第二个参数中的特殊字符
replace 第二个参数为函数
你可以指定一个函数作为第二个参数。在这种情况下,当匹配执行后,该函数就会执行。 函数的返回值作为替换字符串。 (注意:上面提到的特殊替换参数在这里不能被使用。) 另外要注意的是,如果第一个参数是正则表达式,并且其为全局匹配模式,那么这个方法将被多次调用,每次匹配都会被调用。
replace 第二个参数为函数

链接:https://juejin.cn/post/7153800580077453326



正则测试工具

https://c.runoob.com/front-end/854/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值