JavaScript中的正则表达式

正则表达式Regular expressions are patterns used to match character combinations in strings.In JavaScript, regular expressions are also objects. These patterns are used with the exec() and test() methods of RegExp, and with the match(), matchAll(), replace(),
摘要由CSDN通过智能技术生成

正则表达式

Regular expressions are patterns used to match character combinations in strings.

In JavaScript, regular expressions are also objects. These patterns are used with the exec() and test() methods of RegExp, and with the match(), matchAll(), replace(), replaceAll(), search(), and split() methods of String
Regular expressions - JavaScript | MDN (mozilla.org)

两种创建形式

基本形式(字面量)

正则表达式内容用一对斜杠包裹

/abc/ // 匹配 abc 子串

使用构造函数创建正则表达式

let re = new RegExp('abc')

脚本加载后正则表达式字面量就会被编译,当正则表达式不变时,使用字面量可获得更好的性能;在脚本运行过程中编译用构造函数创建的正则表达式,如果正则表达式会动态变化,那么就需要使用构造函数来创建正则表达式

正则表达式中的自变量

使用模板字符串的变量拼接将变量代入

let a = 'abc'
`/${
     a}/` // 此时匹配的是 abc 

正则表达式的模式匹配

简单的模式(字面值)

由基本字符组成,这些字符直接匹配字符内容(相同的字符及顺序)

/abc/ // 匹配 abc 子串,不能有任何差异

特殊字符

利用特殊字符可以构造一些特别的模式匹配,而不仅仅只是匹配固定的基本字符内容,比如匹配不定个数的b/b*/)、以a开头的字符串/^a/

反斜杠\

在非特殊字符之前的反斜杠表示下一个字符是特殊字符,此时该非特殊字符不再匹配字面上的对应字符,比如/\d/,匹配 0~9

要注意在字符串字面量中\是转义字符,所以为了在模式字符串中添加一个反斜杠,需要在字符串中对反斜杠进行转义,也就是new RegExp("\\b")

还有一种特殊情况是当需要匹配反斜杠时,在字符串字面量和正则表达式字面量中都需要对反斜杠进行转义,比如/\b\\/"\b\\\\"

字符类(Character classes)

利用字符类可以指定字符的类型(如数字、字母、控制字符)

小数点.
  • 默认匹配除行终止符(\n, \r, \u2028 or \u2029)以外的任何单个字符
  • 在一个字符类中,这个点会失去他的特殊含义,并且仅仅只匹配字面上的.
/.n/ 
// 将会匹配 "nay, an apple is on the tree" 中的 'an' 和 'on',但是不会匹配 'nay'

在 ES2018 中如果 s “dotAll” 标志位被设为 true,它也会匹配换行符(ES9的正则扩展)

\d
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值