2017-11-20 3 views
0

Ich schreibe einen regulären Ausdruck, um zuerst 6 oder 8 Ziffern zu akzeptieren, dann d, m, md, DM oder überhaupt keinen Buchstaben z.B.Regex zum Akzeptieren von 6 oder 8 Ziffern, gefolgt von 0, 1 oder 2 Buchstaben

  1. 121212 - gültig
  2. 12121212 - gültig
  3. 121212d - gültig
  4. 121212md - gültig

I

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

ist es richtig oder falsch geschrieben haben?

+0

Sie können es auf https://regex101.com/ überprüfen – Tushar

+0

Sie wahrscheinlich das Suffix wie tun könnte (dm |? Md). Abgesehen davon, sieht a-ok aus. Sie müssen es nur testen. –

+0

Wie wäre es mit '^ (\ d {6} | \ d {8}) (dm? | Md? |) $' – sideroxylon

Antwort

-2

Sie sollten etwas wie \d{6,8}[a-zA-Z]{2} tun. Oder [0-9]{2}[a-zA-Z]{2}

Haben Sie einen schönen Tag

+0

Dies wird alle Buchstaben am Ende zulassen - nicht nur d und m. – sideroxylon

+1

Und es wird 7 Ziffern erlauben. – ClasG

+0

Ja richtig, du kannst die [a-zAZ] ändern durch (md? | Dm?) Sag mir, ob es in Ordnung ist –

0

Sie sollten mit versuchen:

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

(?:\d{2})? für 2 steht optional mehr Ziffern.
(?:md?|dm?)? steht für optional m oder d, gefolgt oder nicht von seinem Partner.

Demo

+4

Wird dies nicht '121212mm' und' 121212dd' gültig machen? –

+0

Absolut richtig. Ich habe meine Antwort bearbeitet, um sie zu beheben. – PJProudhon

Verwandte Themen