为了账号安全,请及时绑定邮箱和手机立即绑定

一个正则匹配奇怪的问题?

一个正则匹配奇怪的问题?

天涯尽头无女友 2019-03-20 18:15:02
先上代码:if(/(\module\/(?:.+[^\.html]))/.test("./src/module/comment/comment.html")){    console.log(RegExp.$1) //module/comment/commen}if(/(\module\/(?:.+[^\.js]))/.test("./src/module/comment/comment.js")){    console.log(RegExp.$1) //module/comment/comment}从上面的输出可以看到我只是将代码中的html换成js输出就不一样了,按理说这两段代码不都是应该输出module/comment/comment吗,为何输出就不一样了?下面这段代码也是一样的问题:if(/(\module\/(?:.+[^\.html]))/.test("./src/module/comment/details.html")){    console.log(RegExp.$1) //module/comment/details}if(/(\module\/(?:.+[^\.js]))/.test("./src/module/comment/details.js")){    console.log(RegExp.$1) //module/comment/detail}不都是应该输出/module/comment/details吗?
查看完整描述

1 回答

?
拉丁的传说

TA贡献1789条经验 获得超8个赞

[^]反向匹配
[^abc] 匹配非abc一个字符
/[^js]+/.test('as') 匹配到a 不会匹配s
[^\.html]匹配非 . h t m l 一个字符 比如a,b,e都通过 t不通过 并不是匹配非.html这5个连起来的词
所以你的第一个./src/module/comment/comment.html 匹配到了t所以匹配结束
其他的类似

查看完整回答
反对 回复 2019-04-03
  • 1 回答
  • 0 关注
  • 281 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信