gpt4 book ai didi

javascript - 为什么我的正则表达式没有通过这种情况(包括代码)

转载 作者:行者123 更新时间:2023-12-01 00:34:26 25 4
gpt4 key购买 nike

我正在尝试匹配长度超过 5 个字符且具有两个连续数字的字符串。

let pass = "ast3434";
let pwRegex = /(?=\w{5,})(?=(\d{2}))/;
let result = pwRegex.test(pass);
console.log(result);

“asd234asd”返回 true但对于“asd345”或“4543sdf”等情况返回 false

为什么?

最佳答案

它与“asd345”不匹配的原因是您使用了 2 个断言(非消耗),这两个断言都必须为 true。

因此不存在右侧直接有 AND 2 位数字且右侧直接有 5 个单词字符的位置。

Is 与 4543sdf 匹配,因为两个断言都成功。

参见a demo

您可以使用 anchor 并使用带有量词的单个前瞻。

^(?=[^0-9]*[0-9]{2})\w{5,}$

Regex demo

关于javascript - 为什么我的正则表达式没有通过这种情况(包括代码),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58248264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com