js的正则表达式的正则前瞻(?=)和非捕获性分组(?:)有什么区别?

 我来答
felithuang
推荐于2017-11-26 · TA获得超过849个赞
知道小有建树答主
回答量:520
采纳率:50%
帮助的人:713万
展开全部

(?=)会作为匹配校验,但不会出现在匹配结果字符串里面

(?:)会作为匹配校验,并出现在匹配结果字符里面,它跟(...)不同的地方在于,不作为子匹配返回。

例如:

var data = 'windows 98 is ok';
data.match(/windows (?=\d+)/);  // ["windows "]
data.match(/windows (?:\d+)/);  // ["windows 98"]
data.match(/windows (\d+)/);    // ["windows 98", "98"]
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式