2010-08-19 11 views
2

J'ai une chaîne suivante comme:Obtenir la source de l'image

<img src="../uplolad/commission/ranks/avatar.jpg' . $row[$c_name] .'" width="50" height="50"/> 

Comment puis-je obtenir un nom de fichier image en javascript? Je ne connais que les regex PHP. L'extension d'un fichier peut être différente.

Le résultat doit être: avatar.jpg

Répondre

6

Regex n'est pas idéal pour cela. JavaScript peut parcourir le HTML en tant qu'objets distincts plus facilement qu'en une longue chaîne. Si vous pouvez identifier l'image par quoi que ce soit, par exemple en ajoutant un ID, ou une carte d'identité à un parent que la seule image, vous serez en mesure d'accéder à l'image du scénario:

var myImage = document.getElementById('imgAvatar'); // or whatever means of access 
var src = myImage.src; // will contain the full path 

if(src.indexOf('/') >= 0) { 
    src = src.substring(src.lastIndexOf('/')+1); 
} 

alert(src); 

Et si vous souhaitez modifier, vous pouvez le faire aussi bien

myImage.src = src.replace('.jpg', '.gif'); 
+0

Merci. C'est du travail. – pltvs

1

Fetch en suivant le codage qui peut aider à ce que vous voulez obtenir.

<script type="text/javascript"> 
    function getImageName(imagePath) { 
     var objImage = new RegExp(/([^\/\\]+)$/); 
     var getImgName = objImage.exec(imagePath); 
     if (getImgName == null) { 
      return null; 
     } 
     else { 
      return getImgName[0]; 
     } 
    } 
</script> 


<script> 
    var mystring = getImageName("http://www.mypapge.mm/myimage.png") 
    alert(mystring) 
</script> 
1

est ici une variante plus courte de David Hedlund's answer qui n'utilise regex:

var myImage = document.getElementById('imgAvatar'); // or whatever means of access 
alert(myImage.src.replace(/^.+\// , ''));