Ifs sind zwar nett, aber es geht nichts über ein einfaches preg_match_all(). BTW, meine Version erkennt sowohl die alte Version mit language="" als auch die neue mit type="".
PHP-Code:
<?

$string = "<bla></bla><script type=\"JavaScript\">Skript!</script>dfgdfg<script language=\"JavaScript\">Skript mit\nmehreren Zeilen!</script>fd<dh />";

$pattern = "/(<script.*(type|language).*=\"JavaScript\".*>.*<\/script>)/isU";

preg_match_all ($pattern, $string, $result);

print_r ($result[0]); // dieses Array enhält fertig alle Skripte.

?>