2011-07-12 7 views
0

src属性のimg要素を交換し、誰もがここでそれを必要とする、それは私が希望<img src='path.jpg'/>は正規表現で

を含めるHTMLマークアップを含む文字列を持っている

var feed  = feeds.entries[i].content; 
var parsedFeed = feed.replace(/src=/gi, "tempsrc="); 
var tmpHolder = document.createElement('div'); 
tmpHolder.innerHTML=parsedFeed; 

である場合には、それを解決しましたすべてのsrc attrをtmpSrcに置き換える文字列に対して正規表現を実行する

so

<img src='path.jpg'/> 

がこの方法

をしてJavaScriptである

<img tmpSrc='path.jpg'/> 

に変わり、ここで他の場所に掲示ルートの問題ですが、解決されていないでしょう

Browser parse HTML for jQuery without loading resources

正規表現でHTMLを操作

How to parse AJAX response without loading resources?

おかげ

+4

HTMLが質問の場合、正規表現は答えではありません... – Alnitak

+0

その文字列内に含まれています。.. var result = '

.... ...
'; – samccone

+0

HTMLでも文字列でも、それはまだHTMLですが、問題ではありません。 @Alnitakは言ったように、*正規表現は答えではありません*私は彼に完全に同意します。今、私はあなたに尋ねたい質問は、(tmpSrc'属性を使って)目に見えて有効なHTMLスニペット( 'alt'属性が有効でない)を無効なものにしたいのはなぜですか? –

答えて

2

これはウェブページから検索されたHTMLあなたがコントロールする文字列であり、そうでない場合は、あなたが本当に安全に正規表現を使用することができます。 <img tmpSrc=<img src=のすべての出現箇所を変更するには、この操作を使用することができます

var str = "<img src='path.jpg'/>"; // whatever your source string is 
str = str.replace(/<img src=/gi, "<img tempSrc="); 

を他のポスターが言っている何異なるブラウザは異なる形式を返すので、正規表現は、ウェブページから検索されたHTMLに使用するのはよくないということですHTMLのそれは信頼性の高いそれと一致することが困難になります。しかし、あなたが置き換えをしようとしている文字列があなたのコントロール下にあり、その形式を知ることができれば、この正規表現はうまくいくはずです。 DOMを使用して

input = " <img src='path.jpg'/>"; 
output = input.replace("src","tmpSrc"); 

文字列として
+0

正規表現のおかげで..それは最後に考え出されて:) – samccone

1

エラーが発生しやすくなります。

あなたのページにjQueryのを含めるために苦しむことができる場合:

$('img').each(function() { 
    var src = this.src; 
    $(this).attr('tmpSrc', src).removeAttr(src); 
}); 
+0

jqueryを使用するとDOM構造に画像srcが実際にロードされます:/ /何を取得しようとしているのですか – samccone

+0

@samccone DOMにないコンテンツはどこにありますか? – Alnitak

+0

それはAJAXの要求からサードパーティのAPIに来ている – samccone

0
function replace() { 
    var images = document.getElementsByTagName('img'), 
     srcValue, 
     max 
     i; 

    for (i = 0, max = images.length; i < max; i++) { 
     srcValue = images[i].getAttribute('src'); 
     images[i].setAttribute('tmpSrc', srcValue); 
     images[i].removeAttribute('src'); 
    } 
} 
0

e = document.getElementById("theimg"); 
    e.tmpSrc = e.src; 
    e.removeAttribute("src");