1

嗨,我是 javascript 的新手,我想知道如何删除除单词TB_iframeContent800之外的所有文本。最后的数字不同。

这是一个示例字符串

<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 位数字。

4

4 回答 4

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

如果你已经包含了 jQuery,那么它可能是这样的:

 var iframeName = $("iframe:first").attr("name");
于 2012-10-26T08:57:40.240 回答
1

如果 jQuery 是一个选项,我认为您正在寻找这样的东西

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

于 2012-10-26T09:02:01.707 回答
1

如果你不使用 DOM(因为代码分析等),试试这个正则表达式

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

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

var extract = result[1];

这选择名称属性的内容

于 2012-10-26T09:02:41.787 回答
1

你可以像这样加载你正在解析的 html 并使用 DOM 来获取它的名称(它比使用正则表达式更容易和更可靠的方式):

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

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

如果您使用 Jquery,您可以考虑将 attr("name") 作为获取名称的方式

但是,如果您坚持使用正则表达式,这里是一个:

/< *iframe[^>]*name *= *['"]([^'"]*)/
于 2012-10-26T09:14:41.020 回答