0

I am writing a regular expression to accept first 6 or 8 digit then d, m, md, DM or no letter at all e.g.

  1. 121212 - valid
  2. 12121212 - valid
  3. 121212d - valid
  4. 121212md - valid

I have written

/(^(\d{6}|\d{8}))(d|m|dm|md|)$/gi 

is it correct or wrong?

sideroxylon
  • 4,338
  • 1
  • 22
  • 40
ketan kulkarni
  • 355
  • 1
  • 4
  • 11

2 Answers2

0

You should try with:

^\d{6}(?:\d{2})?(?:md?|dm?)?$

(?:\d{2})? stands for 2 optional more digits.
(?:md?|dm?)? stands for optional m or d, followed or not by its mate.

Demo

PJProudhon
  • 835
  • 15
  • 17
-2

You should do something like \d{6,8}[a-zA-Z]{2}. Or [0-9]{2}[a-zA-Z]{2}

Have a nice day

Adrien De Peretti
  • 3,342
  • 16
  • 22