一、前言
正则表达式也许是javascript
语言中最晦涩难懂的,但是也往往是最简洁的。工作中遇到的很多问题,诸如搜索,查找,高亮关键字等都可以使用正则轻松解决。
如果大家觉得正则表达式理解起来很麻烦,也可以使用如下在线网站【前往】, 只需要输入你的正则表达式, 它就能以图形的方式将你的正则展示出来:
二、高级API
2.1、模式匹配的用法(x)
模式匹配主要用来匹配某一类字符串并记住匹配项.
案例:文章来源地址https://www.toymoban.com/news/detail-837456.html
let str = 'xuxi is xuxi is'
let reg = /(xuxi) (is) \1 \2/g
reg.test(str) // true (1)
str.replace(reg, '$1 $2') // xuxi is (2)
解释: 其中括号被称为捕获括号, 模式中的 \1
和 \2
表示第一个和第二个被捕获括号匹配的子字符串,即 xuxi
和 is
,匹配了原字符串中的后两个单词, 因此(1)
中运行的结果为true
. 当我们在字符串中使用replace
时, 我们可以使用$1
, $2
这样的方式获取第n
个匹配项,并用来替换字符串. 如(2)
中的运行结果.
2.2、非捕获括号的模式匹配(?:x)
主要用来匹配某一类字符串但不记住匹配项.
案例:
let str = 'xuxixuxi'
let reg = /(?:xuxi){1,2}/g
reg.test(str) // true (1)
解释: 其中(?:)
被称为非捕获括号, 我们可以使用它匹配一组字符但是并不记住该字符,一般用来判断某类字符是否存在于某字符串中.
2.3、先行断言x(?=y)
先行断言: 匹配
x
仅仅当x
后面跟着y
.
案例:
let str = '王者融化'
let reg = /王(?=者)/
reg.test(str) // true (1)
解释: /王(?=者)/
会匹配到王
仅当它后面跟着者
.但是者
不属于匹配结果的一部分.
2.4、后行断言(?<=y)x
后行断言: 匹配
x
仅当x
前面是y
.文章来源:https://www.toymoban.com/news/detail-837456.html
案例:
let str = 'xuxiA'
let reg =
到了这里,关于javascript正则深入的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!