6
votes

Expression régulière dans JavaScript - Remplacer image SRC Attribut

Dans JavaScript, j'ai une chaîne contenant un fragment DOM. Comment puis-je trouver et remplacer l'attribut SRC d'une image?

Je voudrais remplacer le chemin de toutes les images avec un nouveau chemin, mais en conservant le nom de l'image. Tous les chemins ne sont pas identiques et peuvent provenir de divers endroits. Mes compétences d'expression régulières sont au mieux pauvres. P>

Par exemple: P>

Change

   <img src='path/to/image/name.jpg' />

into 

   <img src='newPath/name.jpg' />


0 commentaires

6 Réponses :




10
votes

a pris la réponse de Gumbo et ajouté quelques autres choses à l'améliorer:

  • si la chaîne d'entrée contient quelque chose autre que tags pouvant avoir un attribut src - cela ne sera plus correspond / remplacez-les.

  • Le src peut être Utilisation de citations simples ou doubles.

  • Le test étant insensible à la casse.

    résultant: xxx


0 commentaires

3
votes

Si l'utilisation de données brutes (non dom) telles que HTML sous forme de chaîne, ci-dessus ne correspond pas à des caractères à double citation. Ce code peut également s'avérer utile:

root     = serviceURL("file") + "&src=" + encodeURIComponent(root);
// html itself
html     = html.replace(/src=['"](?:[^"'\/]*\/)*([^'"]+)['"]/g, "src='" + root + "/$1'");


1 commentaires

Beaucoup mieux solution



1
votes

Les solutions ci-dessus ne fonctionnent pas bien dans mon cas, où j'ai dû remplacer tout chemin relatif au chemin absolu avant de le stocker dans dB. Mais voici ma solution au cas où le mien travaille pour quelqu'un d'autre. Bravo.

replace(/<img([^>]*)\ssrc=(['"])(\/[^\2*([^\2\s<]+)\2/gi, "<img$1 src=$2" + BaseURL + "$3$2");


0 commentaires

0
votes

J'ai utilisé ces expressions dans mon projet, travaillé comme charme, gérant tous les cas tels que, citation, double citation, balises d'image multiples dans le texte, etc. Dans javascript xxx

dans php xxx


0 commentaires