webForumDet fria alternativet

Fel vid filfiltrering

Webbutveckling

7 svar · 577 visningar · startad av ironhead

Medlem sedan mars 20011 346 inlägg
Frågan#1

Hej!

Jag har en filuppladdning (ASP.NET) som jag vill endast ska validera jpg/jpeg-filer. Jag använder detta mönster:

^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w].*))+(.jpg|.JPG|.jpeg|.JPEG)$

...och det funkar jättebra, sålänge som den första katalogen innehåller mer än 1 bokstav.
Denna sökväg validerar inte:
c:\a\big.jpg
medans denna funkar utmärkt:
c:\ab\big.jpg
...har ändrat
^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w].*))+(.jpg|.JPG|.jpeg|.JPEG)$
till 1, men det funkade ju inte....vad måste jag ändra?

Medlem sedan mars 20011 346 inlägg
#2

Detta verkar funka:
^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w**{0,}**[\w].*))+(.jpg|.JPG|.jpeg|.JPEG)$

Medlem sedan dec. 20025 483 inlägg
#3

Det är ej där problemet ligger. Kika istället på de två sista \w. Får jag föreslå följande istället?

^(?:[a-z]:|\\{2}\w+\$?)(?:\\\w.*)+\.(jpg|jpeg)$

Punkterna på slutet bör du escape:a, annars matchar den vilket tecken som helst (t.ex. c:\b\ajpg). Istället för att skriva [a-zA-Z] och (jpg|JPG|jpeg|JPEG) kan du aktivera någon egenskap för IgnoreCase, typ new RegEx(..., RegexOptions.IgnoreCase).

Medlem sedan mars 20011 346 inlägg
#4

Ah! Tackar!
Jag använder en "RegularExpressionValidator" för att vaildera filtyp som ska laddas upp. Den har inga sådana egenskaper. Verkar funka fint iaf :D

Medlem sedan mars 20011 346 inlägg
#5

Plötsligt får jag ingen match på denna fil :-/

C:\1\oxford-circus-big.jpg

VS.NET verkar bugga lite :-/

Medlem sedan dec. 20003 887 inlägg
#6

Kan det vara så att \w inte matchar siffror kanske?

Medlem sedan aug. 20039 340 inlägg
#7

Engine^ skrev:

Kan det vara så att \w inte matchar siffror kanske?

Det bör det och det gör det.
Felet ligger i att [a-z] bara mtchar små bokstäver. Ändra till [a-zA-Z] eller gör matchningen case insensitive.

Medlem sedan dec. 20025 483 inlägg
#8

Det kanske rentav räcker med

\.jpe?g$

alt.

\.[jJ][pP][eE]?[gG]$
252 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)