Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

JS RegEx to match certain patterns only

I need to adapt my Javascript RegEx to match certain patterns only. The RegEx is used in the html5 pattern attribute to validate an input field.

I want to accept alphanumeric pattern of the following types only:

A-AAAA or BB-BBB (the intended pattern is: 1 digit before the "-", and 4 digits after the "-", or 2 digits before the "-", and 3 digits after the "-").

My current RegEx is:

/([\w]{1,2})(-([\w]{3,4}))/g

This one works, but accepts CC-CCCC as well, which is obviously a valid input pattern, but not the intended pattern. It accepts DDD-DDDD as well; valid again, but not intended.

Could you please assist adapting the pattern?

like image 260
Otto Avatar asked Oct 29 '22 20:10

Otto


1 Answers

You can use alternation based regex in HTML5 pattern attribute (as it has implicit anchors):

/(?:\w-\w{4}|\w{2}-\w{3})/

RegEx Demo

like image 171
anubhava Avatar answered Nov 11 '22 06:11

anubhava