2017-09-11 4 views
-1

J'ai une balise d'image comme ci-dessous,Comment trouver src d'une balise d'image avec alt dans js

var img = '<img src="http://fmp-8.cit.nih.gov/hembase/search2images/chrX.jpg" alt="image x">'; 

Je veux trouver le src de cette img, je l'ai écrit le code comme ci-dessous,

var rex = /<img[^>]+src="?([^"\s]+)"?[^>]*\/>/g; 
    while (m = rex.exec(text)) { 
    imageUrls.push(m[1]); 
} 

Mais mon imageUrls dans l'élément même src vide est là.Peut-on m'aider s'il vous plaît.Merci.

var m, imageUrls = [], 
    rex = /<img[^>]+src="?([^"\s]+)"?[^>]*\/>/g; 
    while (m = rex.exec(text)) { 
imageUrls.push(m[1]); 
    }console.log(imageUrls+'lslsls') 
    for (var i = 0; i < imageUrls.length; i++) { 
    text = text.replace(/<img[^>]*>/, '<amp-img layout="responsive" class="ampimageheight" src="' + imageUrls[i] + '" width="200" height= "100"></amp-img>'); 
    } 
+0

Ceci est un autre cas pour [TO͇̹̺Ɲ̴ȳ̳ bon de commande ñÿ] (https://stackoverflow.com/questions/1732348/regex-match-open- tags-except-xhtml-self-contained-tags) – adeneo

Répondre

2

Vous devez analyser comme HTML, et travailler avec cela. Regex ne convient pas pour l'analyse syntaxique HTML

var img = '<img src="http://fmp-8.cit.nih.gov/hembase/search2images/chrX.jpg" alt="image x">'; 
 

 
var div = document.createElement('div'); 
 

 
div.innerHTML = img; 
 

 
var src = div.querySelector('img').src; 
 

 
console.log(src)

+0

Salut adeneo, J'utilise le noeud js et mis à jour mon code, pouvez-vous s'il vous plaît essayer pour mon code avec l'étiquette de l'image. – vak

+0

Mais le code que vous avez posté ressemble à du code client? Sinon, vous pouvez utiliser quelque chose comme Cheerio pour analyser le code HTML. Vous ne devriez pas analyser le langage HTML avec des expressions régulières, car il a une forte probabilité d'échec. – adeneo