多个前瞻并存的情况

来源:2-9 前瞻

传说中的小白龙

2017-01-25 01:25

当正则中出现多个前瞻同时存在时,应该怎么解析呢。

例如:/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])/这种。

我测试了一下,仿佛每次在前瞻查询时都是从最开始进行查询。所以上面的例子才可以不在意大小写的顺序都true。但是没有找到合适的解释。希望得到大家的帮助。

写回答 关注

2回答

  • 正版Luking
    2017-03-08 19:43:21

    /\d(?=[a-z][A-Z]\d)/     其实多个前瞻可以合成一个前瞻的      

    你那个有一个地方错了  你用那个网站看一下效果图会发现可以为0次 就是你不应该写  .*  的  

    去掉  .*  之后好像还是有问题  可能是js不支持多个前瞻吧

  • 小肥Ken
    2017-01-25 07:29:31

    你能把对应的例子也写出来么?单单看这个很难说明问题


    传说中的小白...

    /(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])/.test('aB1'); ==> true /(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])/.test('Ba1'); ==> true /(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])/.test('1aB'); ==> true 我猜测就是不是顺序匹配的,假如是顺序匹配的话,那么在匹配了第一个小写a-z后面是必须跟A-Z的。。就应该是false。只是假设,没有找到相关说明。想找到相关解释。

    2017-01-25 15:29:13

    共 1 条回复 >

JavaScript正则表达式

JavaScript正则表达式教程,理解之后,正则表达式比你想象的简单

96813 学习 · 119 问题

查看课程

相似问题