Я думаю, что здесь происходит серьезный фанатизм против регулярных выражений. Во многих случаях вам может понадобиться убрать определенный тег из разметки, когда нет смысла использовать полноценный парсер.
Конечно, бывают случаи, когда парсер может быть лучшим вариантом, но если вы ищете регулярное выражение, то:
<script[^>]*?>[\s\S]*?<\/script>
Это удалит теги скрипта и их содержимое. Убедитесь, что вы используете регистронезависимое сопоставление.
Если вы не хотите удалять содержимое тега, вы можете использовать:
<\/?script[^>]*?>
Пример использования в javascript:
function stripScripts(markup) {
return markup.replace(/<script[^>]*?>[\s\S]*?<\/script>/gi, '');
}
var safeText = stripScripts(textarea.value);