1

I'm trying to create regex and test in javascript.

RULE: The text should only be 8 characters. Only contain Upper case and numbers 1-5 No lower case or special characters or 6-7 numbers.

example:

12345678 -- false a2345678 -- false aabbccdd -- false AABB33DD -- true // contains BOTH uppercase and numbers between 1-5 and nothing else AABB88DD -- false AABBCCDD -- false AABB3.DD -- false 

CODE:

 var pattern = new RegExp("^(?=.*[1-5])(?=.*[A-Z]).+$"); pattern.test(code) 

I'm not able to crate the right regex. Can anyone please help?

5
  • 2
    /^[A-Z1-5]{8}$/ Commented Mar 15, 2022 at 21:24
  • @ASDFGerte This isn't working. it accepts all Uppercase text like AAAAAAAA Commented Mar 15, 2022 at 21:29
  • 1
    Yes, i interpreted it that way - from your comment, i assume you want at least one letter and at least one number, but don't really see that reflected in your question. If you want at least one, just add a lookahead checking for one somewhere. Commented Mar 15, 2022 at 21:32
  • So it must contain at least one char and at least 1 digit? Commented Mar 15, 2022 at 21:32
  • @SalmanA Should only accept the combination of uppercase and numbers between 1-5. Commented Mar 15, 2022 at 22:11

1 Answer 1

1

Use

^(?=.*[1-5])(?=.*[A-Z])[A-Z1-5]{8}$ 

See regex proof.

EXPLANATION

-------------------------------------------------------------------------------- ^ the beginning of the string -------------------------------------------------------------------------------- (?= look ahead to see if there is: -------------------------------------------------------------------------------- .* any character except \n (0 or more times (matching the most amount possible)) -------------------------------------------------------------------------------- [1-5] any character of: '1' to '5' -------------------------------------------------------------------------------- ) end of look-ahead -------------------------------------------------------------------------------- (?= look ahead to see if there is: -------------------------------------------------------------------------------- .* any character except \n (0 or more times (matching the most amount possible)) -------------------------------------------------------------------------------- [A-Z] any character of: 'A' to 'Z' -------------------------------------------------------------------------------- ) end of look-ahead -------------------------------------------------------------------------------- [A-Z1-5]{8} any character of: 'A' to 'Z', '1' to '5' (8 times) -------------------------------------------------------------------------------- $ before an optional \n, and the end of the string 
Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.