Цитата(Goliath @ 12.11.2006, 11:16 ) | Ниже приведен код, который корректно выдирает содержимое в теге <script> в Internet Explorer 6+ |
Не может такой код корректно выдирать содержимое по определению, хотя бы просто потому, что множитель/квантификатор стоит за скобкой, а не внутри. Соответственно выдираться будет последнее вхождение (символ). Из того, что я вижу, вам нужно:
1. отказаться от конструктора new RegExp() в пользу литеральной записи, иначе придётся разбирать строку, ставить при необходимости двойные обратные слеши и т.п., что вы сейчас не делаете;
2. определиться со способом записи переноса строки в регулярном;
3. правильно расставить скобки, учитывая то, что множитель - это неотъемлемая часть фрагмента;
Приблизительные варианты:
Код | /<script.*?>([\s\S]*?)<\/script>/ig; /<script.*?>((.|[\r\n])*?)<\/script>/ig; /<script.*?>((.|\r|\n)*?)<\/script>/ig;
|
|