我想检查一个数字序列是否以 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}
量词。
const strings = [
"4666666666666",
"466666666666",
"46666666666666777"
];
let pattern = /^4\d{12,15}$/;
strings.forEach((s) => {
console.log(s + " ==> " + pattern.test(s));
});
关于javascript - 正则表达式在传递长度时返回部分匹配而不是 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51085904/