Reputation: 79
I am trying to write a regular expression which returns a three digit integer only. Not less than three or more than three. However my regex below is also true for four digit numbers. Am i missing something?
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???
Upvotes: 2
Views: 3735
Reputation: 224867
You have the ending anchor $
, but not the starting anchor ^
:
var threeDigits = /^\d{3}$/
Without the anchor, the match can start anywhere in the string, e.g.
"1234".match(/\d{3}$/g) // ["234"]
Upvotes: 6