2012-10-26 67 views
1

嗨,我是一個JavaScript的新手,我想知道如何去除除文字TB_iframeContent800之外的所有文本。最後的數字會有所不同。用javascript去除文本

這裏有一個例子字符串

<iframe frameborder="0" style="width: 670px; height: 401px;" onload="tb_showIframe()" name="TB_iframeContent80" id="TB_iframeContent" src="http://www.gorgeoushentai.com/wp-admin/media-upload.php?post_id=33&amp;" hspace="0">This feature requires inline frames. You have iframes disabled or your browser does not support them.</iframe> 

我想提取TB_iframeContent80並將其存儲爲一個變量。那麼你怎麼可以用JavaScript使用正則表達式呢?請注意最後2位數字的變化會導致數字總是變化,所以有時會變成3位數字。

+1

你試圖提取iframe名稱? –

+5

請只使用JavaScript的DOM操作,而不是正則表達式。 –

+0

是的我試圖提取iframe名稱 –

回答

4
var iframeName = document.getElementsByTagName("iframe")[0].name 

,如果你已經包括jQuery的話那可能是這樣的:

var iframeName = $("iframe:first").attr("name"); 
1

如果jQuery是一個選擇,我認爲你正在尋找這樣的事情

$('iframe[name^="TB_iframeContent"]')

1

如果你不會使用DOM(因爲代碼分析等)只是試試這個正則表達式

var code = '<iframe ... /iframe>'; 

var result = code.match(/name="([^"]*)"/); 

var extract = result[1]; 

此選擇的名稱屬性的內容

1

您可以加載HTML的youre解析喜歡這一點,並使用DOM來得到它的名字(它比使用正則表達式更容易和更可靠的方式):

var loadhtml = document.createElement('div'); 
loadhtml.innerHTML = 'yourHtml'; 

var theName = loadhtml.getElementsByTagName('iframe')[0].name; 

如果你使用jQuery,如果你堅持在這裏使用正則表達式,你可以考慮ATTR(「名稱」)的方式來獲得名

不過是一個:

/< *iframe[^>]*name *= *['"]([^'"]*)/