I’m trying to write a regular expression in JS to recognize any digit up to seven times, followed by a “-” followed by 2 digits followed by “-” followed by a single digit. This is the simple regex I have:
/\d{1,7}-\d{2}-\d/g
This should match strings like:
123-12-71-12-71234567-12-7
but not 12345678-12-1
However, the above is returning true. The regex returns true when there is any number of digit in the first group.
Does the JavaScript Regex object not support {n,m}?
Here is an example of what I am talking about.
var pattern = new RegExp(/\d{1,7}-\d{2}-\d/);
alert(pattern.test("12345678-13-1"));
http://jsfiddle.net/XTRAc/1/ live example
It matches
2345678-13-1. You need to anchor it to the beginning and end of your string:Note though, that (as Rocket Hazmat pointed out) you do not need to use the
RegExpconstructor if you use a regex literal (something without string quotes).JSFiddle