Javascript 匹配特定位数的正则表达式

Javascript 匹配特定位数的正则表达式,javascript,regex,Javascript,Regex,我正在尝试编写一个只返回三位整数的正则表达式。不少于三个或多于三个。然而,我下面的正则表达式对于四位数也是正确的。我错过什么了吗 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?

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

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???

您有结束锚点
$
,但没有起始锚点
^

var threeDigits = /^\d{3}$/
如果没有锚,比赛可以从绳子的任何地方开始,例如

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

您有结束锚点
$
,但没有起始锚点
^

var threeDigits = /^\d{3}$/
如果没有锚,比赛可以从绳子的任何地方开始,例如

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

使用一个^[0-9]{3}$或^\d{3}$。

使用一个^[0-9]{3}$或^\d{3}$。

您应该使用
^\d{3}$
其中
^
是字符串的开头。您应该使用
^\d{3}$
其中
^/code>是字符串的开头。