Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  3 4882
Jeg ønsker å validere input fra en bruker, hvor formen på inputet må bestå av to unike bokstaver fra A til H, separert med en bindestrek. F.eks "A-D" eller "C-H", men ikke f.eks "A-K" eller "aa-bb". Dette har jeg fått til med følgende uttrykk: '^[a-hA-H]{1}-{1}[a-hA-H]{1}$'

Det eneste problemet som gjenstår er at utrykket tillater symmetriske bokstaver. Altså "A-A" og "B-B" blir matchet. Er det tilfeldigvis noen som har vært borti mye RegEx som kan hjelpe meg her? Jeg syns RegEx er utrolig fascinerende og kjempe nyttig, men helt håpløst og lese / skrive! Problemet mitt var overraskende vanskelig å google på nettet.
Funker denne som du vil?

Kode

^([a-hA-H])-(?!\1)[a-hA-H]$
https://regexr.com/
果実男爵
Juicekongen's Avatar
Trådstarter
Sitat av Realist1 Vis innlegg
Funker denne som du vil?

Kode

^([a-hA-H])-(?!\1)[a-hA-H]$
https://regexr.com/
Vis hele sitatet...
Se der ja! Ante ikke at disse "lookarounds"ene var en ting i RegEx

Denne fungerer nesten. "a-A" eller "B-c" f.eks blir fremdeles matchet, så den må kunne ta høyde for like symboler som kanskje har ulik case. Men det finner jeg nok ut av imorgen. Tusen takk for hjelpen.
Sist endret av Juicekongen; 2. april 2020 kl. 04:58.
Mulig det finnes en smartere måte å gjøre det på, men siden det bare er to mulige caser (store og små bokstaver), så ville jeg bare sjekket for begge deler separat.

Kode

^([A-H])-(?!\1)[A-H]$|^([a-h])-(?!\2)[a-h]$
Her er det altså en boolean OR ("|") midt inni der, som gjør at Regexen matcher enten kun store, eller kun små bokstaver.

Alternativt en av disse, som gjør samme nytten:

Kode

^(([A-H])-(?!\2)[A-H]|([a-h])-(?!\3)[a-h])$
^(?:([A-H])-(?!\1)[A-H]|([a-h])-(?!\2)[a-h])$
Sist endret av Realist1; 2. april 2020 kl. 06:19.