var string = '<DIV style="MARGIN-TOP: 0px; WIDTH: 670px; HEIGHT: 210px; VISIBILITY: visible; MARGIN-LEFT: -335px; TOP: 48px" id=TB_window><DIV id=TB_title> <DIV id=TB_ajaxWindowTitle>Add Media</DIV> <DIV id=TB_closeAjaxWindow><A id=TB_closeWindowButton title=Close href="#" jQuery172014112867239284427="140"><IMG src="http://www.gorgeoushentai.com/wp-includes/js/thickbox/tb-close.png"></A></DIV></DIV><IFRAME style="WIDTH: 670px; HEIGHT: 180px" id=TB_iframeContent onload=tb_showIframe() src="http://www.gorgeoushentai.com/wp-admin/media-upload.php?post_id=168&" frameBorder=0 name=TB_iframeContent656 hspace=0>This feature requires inline frames. You have iframes disabled or your browser does not support them.</IFRAME></DIV>';
var regex = /<IFRAME.*name=(.+?) .*<\\/IFRAME>/;
var m = string.match(regex);
alert(m[1]);
The above regular expression tries to match :
‘<IFRAME’
any amount of characters (greedy)
‘name=’
any amount of characters (non-greedy)
a space
any amount of characters (greedy)
‘</IFRAME>’
I have wrapped what comes after ‘name=’ in parentheses, so that it is available as in the matches array (m[1]).
Although this works, it is very brittle and might not be the best way to accomplish what you want.
If you only have one iFrame on the page for example, you could instead try: