Can I use
\d\d\d\d[^\d]
to check for four consecutive digits?
For example,
OK:
411112
455553
1200003
f44443
g55553
3333
No:
f4442
45553
f4444g4444
f44444444
Can I use
\d\d\d\d[^\d]
to check for four consecutive digits?
For example,
OK:
411112
455553
1200003
f44443
g55553
3333
No:
f4442
45553
f4444g4444
f44444444
If you want to find any series of 4 digits in a string /\d\d\d\d/
or /\d{4}/
will do. If you want to find a series of exactly 4 digits, use /[^\d]\d{4}[^\d]/
. If the string should simply contain 4 consecutive digits use /^\d{4}$/
.
Edit: I think you want to find 4 of the same digits, you need a backreference for that. /(\d)\1{3}/
is probably what you're looking for.
Edit 2: /(^|(.)(?!\2))(\d)\3{3}(?!\3)/
will only match strings with exactly 4 of the same consecutive digits.
The first group matches the start of the string or any character. Then there's a negative look-ahead that uses the first group to ensure that the following characters don't match the first character, if any. The third group matches any digit, which is then repeated 3 times with a backreference to group 3. Finally there's a look-ahead that ensures that the following character doesn't match the series of consecutive digits.
This sort of stuff is difficult to do in javascript because you don't have things like forward references and look-behind.
\1
in the regex references the first group in regex ((\d)
). Read more about them here: regular-expressions.info/brackets.html. This will also match strings like "41111114", though. Is that what you want? –
Conglomeration This sort of stuff is difficult to do in javascript because you don't have things like forward references and look-behind.
This should be mentioned in all coding challenges so JavaScript developers don't waste their time on particular time-crippling challenges they can better do in their native language/construct. –
Iodine Should the numbers be part of a string, or do you want only the four numbers. In the later case, the regexp should be ^\d{4}$
. The ^
marks the beginning of the string, $
the end. That makes sure, that only four numbers are valid, and nothing before or after that.
That should match four digits (\d\d\d\d
) followed by a non digit character ([^\d]
). If you just want to match any four digits, you should used \d\d\d\d
or \d{4}
. If you want to make sure that the string contains just four consecutive digits, use ^\d{4}$
. The ^
will instruct the regex engine to start matching at the beginning of the string while the $
will instruct the regex engine to stop matching at the end of the string.
/^\d{4}$/
–
Panicle © 2022 - 2024 — McMap. All rights reserved.