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
  • 3,977
  • 1
  • 18
  • 33
ketan kulkarni
  • 285
  • 1
  • 4
  • 9

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
  • 821
  • 13
  • 14
-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
  • 1,754
  • 8
  • 14