关于javascript:正则表达式以匹配特定的数字位数

Regular expression to match specific number of digits

我试图编写一个只返回三位整数的正则表达式。不少于三个或多于三个。但是,下面的regex对于四位数也是正确的。我错过什么了吗?

1
2
3
4
5
var threeDigits = /\d{3}$/

console.log(threeDigits.test("12"))// false
console.log(threeDigits.test("123"))// true
console.log(threeDigits.test("1234"))// true yet this is four digits???


你有结束锚$,但没有开始锚^

1
var threeDigits = /^\d{3}$/

如果没有锚,匹配可以从字符串中的任何位置开始,例如

1
"1234".match(/\d{3}$/g)  // ["234"]

使用一个^[0-9]3或^d 3美元。