03. oktober 2013 - 10:16
Der er
1 kommentar og
1 løsning
Validering af streng
Hej
Er der en som kan hjælpe med denne
Jeg ønsker at validere om en streng opfylder
Nedenstående
Længde 54
"*" på position 2,7,24,34,38,46,49,52
Karakterer mellem "*" må være alle
.*217M*AK94-00456B.....*M0014....*SYS*.......*N.*A.*1.
03. oktober 2013 - 15:35
#1
Her er en mulig løsning:
^.{1}\*.{4}\*.{16}\*.{9}\*.{3}\*.{7}\*.{2}\*.{2}\*.{2}$
Denne regex matcher følgende:
Længde 54
"*" på position 2,7,24,34,38,46,49,52
Karakterer mellem "*" må være alle
Dvs at
Men er du sikker på, at du virkelig mener ALLE karakter. Du skal tænke på, at dine kriterier også matcher: "*" gange 54 (da * er en del af alle karakterer)...
Her er et eksempel i Ruby (irb i Terminal):
Martins-MacBook-Pro-Retina:wsr martinmindorf$ irb
1.9.3-p392 :001 > @rgx = /^.{1}\*.{4}\*.{16}\*.{9}\*.{3}\*.{7}\*.{2}\*.{2}\*.{2}$/
=> /^.{1}\*.{4}\*.{16}\*.{9}\*.{3}\*.{7}\*.{2}\*.{2}\*.{2}$/
1.9.3-p392 :002 > @rgx.match "dette burde ikke virke og skal retunere nil"
=> nil
1.9.3-p392 :003 > @rgx.match ".*217M*AK94-00456B.....*M0014....*SYS*.......*N.*A.*1."
=> #<MatchData ".*217M*AK94-00456B.....*M0014....*SYS*.......*N.*A.*1.">
1.9.3-p392 :004 > @rgx.match ".*217M*AK94-00456B...HEJHEJ_TEST..*M0014....*SYS*.......*N.*A.*1."
=> nil
1.9.3-p392 :005 > @rgx.match "*"*54
=> #<MatchData "******************************************************">
1.9.3-p392 :006 > @rgx.match "*"*55
=> nil