我想检查一个数字序列是否以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
)
在第二种情况下,我也希望它也是假的,因为该长度大于我在Regex上设置的15。
答案 0 :(得分:1)
您应使用锚点^
和$
来声明字符串的开头和结尾。
您可以省略{1}
量词。
const strings = [
"4666666666666",
"466666666666",
"46666666666666777"
];
let pattern = /^4\d{12,15}$/;
strings.forEach((s) => {
console.log(s + " ==> " + pattern.test(s));
});