Nästa steg matchar nästan allt
\d{2,4}[-/\s][\d{2,10}\s]
Dock verkar det bli lite konstigt
Funkar 0150-15911
Funkar ej på sista siffran 0150-159 11
Funkar ej på 2345 08-123456789
Funkar 08-123 456 789
9 svar · 448 visningar · startad av PDahlen
Av någon anledning så har det aldrig blivit mig av att jag satt mig in i regular expressions tillräckligt bra.
Ja det får jag sota för nu.
Jag sitter och pillar på en regexp med RegexDesigner.
Det ska kolla följande
Först 2-4 siffror
Sedan - / eller space
Sedan 5-10 siffror och så kan det vara space mellan siffrorna
Mitt första steg
\d{2,4}[-/]\d{5,10}
matchar
först 2-4 siffror
sedan - eller /
sedan siffror utan space
Alla tips och råd tas emot med glädje.
Nästa steg matchar nästan allt
\d{2,4}[-/\s][\d{2,10}\s]
Dock verkar det bli lite konstigt
Funkar 0150-15911
Funkar ej på sista siffran 0150-159 11
Funkar ej på 2345 08-123456789
Funkar 08-123 456 789
Fortsätter väl mina försök.
Blir väldigt konfunderad. Tänkte att jag skulle göra det enkelt för mig och istället använda
[\d\/\s\+]
Som då godkänner siffror, -, /, + och space.
När jag testar denna i RegexDesigner så får jag OK på alla olika variationer jag har.
Men när jag lägger in det i koden så bombar det på allt.
Kör lite tester här: http://www.webeye.nu/default2.asp?que=asp/regexptester.asp
Körde test där och har testat även här http://regexlib.com/RETester.aspx
Allt matchar men som sagt, när jag lägger det i koden så matchar inget.
Förstår inte varför denna inte funkar när RegExp funkar när jag testar i flera olika testappar.
<ASP:REGULAREXPRESSIONVALIDATOR
id="RegularExpressionValidatorTelefon"
VALIDATIONEXPRESSION="[\d{5,10}\s-\+]"
ERRORMESSAGE="Fel på telefonnumret"
CONTROLTOVALIDATE="tboxTelefon"
DISPLAY="None"
RUNAT="server">
</ASP:REGULAREXPRESSIONVALIDATOR>
Eftersom jag inte ens kan få de enkla RegExp att validera min kontroll så fortsatte jag att prova mig fram med lite större saker.
^((([\+][\d{1,3}])|([0][\d{1,3}]))[-\s/)([\d{1,10}\s])$
Ovanstående tycker jag borde fungera.
^((([\+][\d{1,3}])|([0][\d{1,3}]))[-\s/)
..ska validera början av strängen
(([\+][\d{1,3}])|([0][\d{1,3}]))
..borde kolla om det är
([\+][\d{1,3}])
ett + och 1-3 siffror
eller
([0][\d{1,3}])
en 0 och 1-3 siffror
([\d{1,10}\s])$
ska kolla slutet av strängen och borde då kolla så att det bara är
siffror i grupper av 1-10 siffror och blanksteg.
Men nåt har jag gjort fel.
Lysande, tack!
Om jag vill lägga till en koll för internationella prefix också?
T.ex.
Skall funka
+46 150 159 11
+46150-159 11
+46 0150 159 11
0150-15911
0150 159 11