PDahlenMedlem sedan apr. 2004778 inlägg 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.
PDahlenMedlem sedan apr. 2004778 inlägg 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
PDahlenMedlem sedan apr. 2004778 inlägg 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.
Jesper TMedlem sedan nov. 20017 144 inlägg PDahlenMedlem sedan apr. 2004778 inlägg 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.
PDahlenMedlem sedan apr. 2004778 inlägg 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>
PDahlenMedlem sedan apr. 2004778 inlägg 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.
Peter SMedlem sedan dec. 20025 483 inlägg ^\d{2,4}(-|\/\s|)(\d\s*){5,10}$
:)
PDahlenMedlem sedan apr. 2004778 inlägg 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
PDahlenMedlem sedan apr. 2004778 inlägg Så här blev den slutligen
^(\+(\d{1,3}\s*)|)\d{2,4}(-|/|\s|)(\d\s*){5,10}$