2010-11-04 5 views
7

Je veux obtenir des URL d'images dans Js/HTML:Utilisez regex pour obtenir l'URL de l'image en HTML/Js

var a = "http://sub.domain.com/uploads/files/11-11-2011/345301-574-1182-393/2202.jpg"; 
var b = "http://sub.domain.com/uploads/files/23-11-2011/234552-574-2321-232/asd.png"; 

Vous recherchez une solution qui permet de détecter l'URL de l'image. Ainsi, la sortie sera:

http://sub.domain.com/uploads/files/11-11-2011/345301-574-1182-393/2202.jpg 
http://sub.domain.com/uploads/files/23-11-2011/234552-574-2321-232/asd.png 

Merci!

+2

Pour être clair: Vous souhaitez numériser un fichier source HTML entier qui contient également JavaScript pour les chaînes d'URL dans les sections JavaScript? – Tomalak

Répondre

23

basé sur l'information que vous avez donné, cela devrait fonctionner:

(https?:\/\/.*\.(?:png|jpg)) 

Vous pouvez ajouter des extensions en ajoutant |ext après jpg. Cela permettra également de créer des chaînes avec https.

Remarque: Vous pouvez utiliser l'insensible à la casse modificateur i pour rendre la capture plus inclusive. Cela ressemblerait à ceci:

/(https?:\/\/.*\.(?:png|jpg))/i 
+6

Cela échouera dans des situations telles que le style src = "https://mail.google.com/mail/u/0/images/cleardot.gif" = "background: url (https://ssl.gstatic.com/mail /sprites/general-51d583f1fd064eadd1975a8bdef3ef93.png). Ce qui fonctionne pour moi est (https?: \/\/[^] * \. (?: gif | png | jpg | jpeg)) – Amarsh

+5

Je pense que c'est mieux: ' ?? (http) s: (\/\/[^ " '] * \ (?: .png | jpg | jpeg | gif | png | svg).)' – hayatbiralem

+0

oui +1: par exemple: someurl.svg. .png (. wiki par exemple) –

3

Essayez ceci:

/"(http://[^"]*?\.(jpg|png))"/g 

1 $ est ce que vous voulez.

8

Un peu tard pour le parti, mais en essayant de faire quelque chose de similaire à l'OP, j'ai créé l'expression rationnelle suivante, qui semble gérer les liens relatifs, ainsi que les absolus:

/([a-z\-_0-9\/\:\.]*\.(jpg|jpeg|png|gif))/i 
+0

correspond à tout mais lent! Merci quand même – 3zzy

-1

var regex = /(http[s]?://.*.(?:png|jpg|gif|svg|jpeg))/i;

Ceci est le résultat que vous voulez

Questions connexes