другой результат разделения Regex в IE

Я получаю HTML-код в виде ответа ajax, и мне нужно получить только содержимое тела. Поэтому я сделал это регулярное выражение:

/(<body>|<\/body>)/ig

хорошо работает во всех браузерах, но по какой-то причине IE дает мне другой массив, когда я использую split:

data.split(/(<body>|<\/body>)/ig)

Во всех обычных браузерах содержимое тела split (/ (< body> | <\ / body>) / ig) [2] , но в то есть его в split (/ ( | <\ / body>) / ig) [1] . (проверено в IE7 и 8)

Почему это? И как я могу изменить его, чтобы получить один и тот же массив во всех браузерах?

edit просто для пояснения. У меня есть решение, упомянутое tobyodavies. Я хочу понять, почему он ведет себя по-другому.

это HTML из ответа: (строка в данных)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"  xml:lang="de"  lang="de" dir="ltr">
<head>
blablabla...
</head>
<body>
<div class="iframe">
   <div id="block-menu-menu-primary-links-user" class="block-menu">
 <h3>Primary Links - User</h3>  <div class="content"><ul class="menu"><li class="leaf first"><a target="content" href="#someurl" title="">Login</a></li>
<li class="leaf last"><a target="content" href="#someurl" title="">Register</a></li>
</ul></div>
</div>
</div>
</body>
</html>

PS: я знаю, что синтаксический анализ HTML с регулярным выражением - это плохо, но это не мой код, я просто нужно это исправить.

5
задан meo 4 April 2011 в 09:32
поделиться