我是靠谱客的博主 风中月光,这篇文章主要介绍详解正则中先行断言的用法,现在分享给大家,希望可以做个参考。

/x(?=y)/  MDN解释如下

匹配'x'仅仅当'x'后面跟着'y'.这种叫做先行断言。

例如,/Jack(?=Sprat)/会匹配到'Jack'仅当它后面跟着'Sprat'。/Jack(?=Sprat|Frost)/匹配‘Jack’仅当它后面跟着'Sprat'或者是‘Frost’。但是‘Sprat’和‘Frost’都不是匹配结果的一部分。

先行断言详解

x(?=y) 先行断言就是,断言我需要匹配的内容x后面一定跟着y。所以只会匹配到xy中的x

此处误区为,有人认为会匹配到y,这是错的。先行断言只会匹配x

代码如下:


let str = "a123"
str.match(/a(?=123)/)
// 会匹配到a  => a

str.match(/a(?=1234)/)
// 不会匹配到a =>null

由上面的解释可知。?= 仅会匹配到  后面跟着123的a ;

所以进一步 编写:

let str1 = "a123ASas"
str1.match(/a(?=123)d/)
// 会匹配到a1 => a1
解释: 匹配到了后面跟着123的a 然后匹配到了d 1  所以输出为a1

 

最后

以上就是风中月光最近收集整理的关于详解正则中先行断言的用法的全部内容,更多相关详解正则中先行断言内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(122)

评论列表共有 0 条评论

立即
投稿
返回
顶部