2016-10-28 1 views
0

Ich möchte eine Validierung zu überprüfen Bild URL, so dass ich nur ein Vorkommen von "?" und das auch nach bestimmten Bildformaten.Regex zur Überprüfung der URL mit nur einem Vorkommen von Zeichen "?" und das auch nach bestimmten Bildformaten

https://img1.com/1.jpeg: valid 

https://img2.com/16.png?bg=0: valid 

https://img3.com/15.jpg?bg=0&wmi=n : valid 

https://img4.com/1?2.jpg?bg=0&wmi=n : invalid (two ? in url) 

https://img5.com/12.jpg??bg=0&wmi=n : invalid (two ? in url) 

https://img6.com/1.xyz: invalid (jpg|png|gif|jpeg only supported) 

Auch Bildformate können jpg | png | gif | jpeg sein.

ich versucht habe, mit

\.(?i)(jpg|png|gif|jpeg)(?=\?|$) 

der gut arbeitet, kann aber nicht mehr als ein Auftreten erkennen „?“

+0

wie diesen ein 'https: [. \ W]. \/\/(Www. \) + \/[\ W] + \ (jpeg | jpg | png | gif | gif) (\?)? [^ \?] + $ ' – Prisoner

Antwort

0

Wenn Sie nur mit den gültigen URLs übereinstimmen, als Sie Ausdruck unter

(?i)/([^?]*?)\.(png|jpe?g|gif)\??(?!\?) 

Es gilt Urls passt zu allen und nicht alle ungültigen einstimmt verwenden können.

0

Wie wäre:

\.(?i)(jpg|png|gif|jpeg)(?:\?[^?]+)?$ 
Verwandte Themen