gpt4 book ai didi

javascript - 正则表达式在传递长度时返回部分匹配而不是 false

转载 作者:行者123 更新时间:2023-12-03 01:35:36 25 4
gpt4 key购买 nike

我想检查一个数字序列是否以 4 开头,并且正好有 12 到 15 位数字(数字长度必须为 13 到 16 位数字)。

我希望我的正则表达式在小于或大于 {12,15} 时返回 false。

我正在测试这个正则表达式:4{1}\d{12,15},它在数字小于 13 位时有效,在本例中它返回 false,但当它从它仅返回字符串的 15 位数字,而不是 null。例如:

使用:412345678901 preg_match() 返回:

array()

包含:412345678901234567 preg_match() 返回:

array(
0 => 4123456789012345
)

在第二种情况下,我也希望它为 false,因为长度大于我在正则表达式上设置的 15。

最佳答案

您应该使用 anchor ^$ 来断言字符串的开头和结尾。

您可以省略 {1} 量词。

^4\d{12,15}$

const strings = [
"4666666666666",
"466666666666",
"46666666666666777"

];
let pattern = /^4\d{12,15}$/;

strings.forEach((s) => {
console.log(s + " ==> " + pattern.test(s));
});

Demo

关于javascript - 正则表达式在传递长度时返回部分匹配而不是 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51085904/

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