2016-10-25 1 views
0

Je souhaite valider les URL d'image, peu avec une chaîne de requête et peu d'entre elles sans cette option. https://images.company.com/img/800X450/vehicle/201610/858823_589_1475572549658.gif?bg=000000&wmi=nRegex pour valider les URL d'image avec la chaîne de requête

http://images.company.com/img/800X450/vehicle/201610/858823_599_1475572549658.jpeg?bg=000000&wmi=n&pne=ur

http://images.company.com/img/800X450/vehicle/201610/858823_599_1475572549658.png

chose donc de base est de valider une image avec jpg | png | gif | extension jpeg, avec ou sans paramètre de chaîne de requête.

J'ai essayé d'utiliser Matches (@ ". (? I) (jpg | png | gif | jpeg)") regex.

Mais le problème est-il est de valider des images comme: http://images.company.com/img/800X450/vehicle/201610/858823_599_1475572549658.pngg OU http://images.company.com/img/800X450/vehicle/201610/858823_599_1475572549658.giff

Comment puis-je valider si l'URL est l'extension exacte jpg ou png ou gif ou jpeg et éventuellement un paramètre de chaîne de requête après?

+1

Peut-être quelque chose comme ceci: '(jpg | jpeg | gif | png) ((\?. *) $ | $) '- l'extension est soit suivie d'une chaîne de requête, soit d'une fin de chaîne. [HERE] (https://regex101.com/r/YrgpUf/3) – sideroxylon

+1

En fait, je ferais même comme ça: '(jpe? G | gif | png) (? = \? | $)' Comme ici: https : //regex101.com/r/bQDTiS/1 – antoni

+0

@antoni - pour une validation pure, c'est une solution soignée. Je suppose que le seul risque est de pouvoir valider une chaîne de requête vide. – sideroxylon

Répondre

0

Assertion que l'extension de fichier répertorié doit être suivi d'une chaîne de requête ou à la fin de la chaîne:

(jpg|jpeg|gif|png)((\?+*)?$|$) 

HERE

+1

\. (? I) (jpg | png | gif | jpeg) (? = \? | $) fonctionne pour moi. – maverick