Regex - убрать ненужный JavaScript из текста - C#

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток! Столкнулся с необходимостью удалить ненужный JavaScript код со строки методами C#. Вот пример ненужного JS:
$(document).ready(function(){
    if('is_mp4' == 'is_mp4' && ($('#ipad').length > 0 || $('#ipad2').length > 0 || $('#iphone').length > 0)){
      $('#video_player_1').html("<video controls=\'[NULL]\' alt=\'В Днепропетровске продолжается подсчет результатов референдума\' width=\'630\' height=\'470\' poster=\'http://image.tsn.ua/media/images3/550xX/May2014/383987965.jpg\' src=\'http://vid6.tsn.ua/2014/05/12/383987966-2.mp4\' />");
    }
    else{
      var so = new SWFObject('/static/app/swf/vplayer.swf','video_player','630','525','10','#000000');
        so.addParam('quality', 'high');
        so.addParam('wmode', 'transparent');
        so.addParam('scale', 'false');
        so.addParam('allowfullscreen', 'true');
        so.addParam('allowScriptAccess', 'sameDomain');
 
        so.addVariable('media_id', '383987966');
        so.addVariable('section_id', '2');
        so.addVariable('resource_id', '25');
 
        so.addVariable('session_id', '');
        so.addVariable('userad_id', '');
        so.addVariable('bit', '');
        so.addVariable('referer', '');
 
        so.addVariable('root_width', '630');
        so.addVariable('root_height', '525');
        so.addVariable('color', '#000000');
        so.addVariable('autostart', 'false');
 
        so.addVariable('config_file', '/static/app/video/config.xml');
        so.addVariable('ad_file', 'noad');
        so.addVariable('banner', '');
        so.addVariable('config_file_append', '');
        so.addVariable('hide_title', '1');
 
      so.write('video_player_1');
    }
  });
  $(document).ready(function(){
    $('#article_video_1 .close_open').click(function(){
      $(this).toggleClass('pm_close');
      $(this).toggleClass('pm_open');
      $(this).find('.bg_plus_minus').toggleClass('plus_minus_close');
      $(this).find('.bg_plus_minus').toggleClass('plus_minus_open');
      $('#article_video_1 .v_content').toggleClass('v_content_show');
      $('#article_video_1 .v_content').toggleClass('v_content_hide');
    });
  })
Использую регулярные выражения, но я в них не силен и пока что ничего кроме удалить всю строку они у меня не делают. Буду благодарен любой помощи в этом деле. Спасибо за внимание, Максим.
Пробую такой патерн, но что-то здесь не то:
const string pattern = @"[$(document)]?.*[})]*";
Такое:
@"[$(document).ready(function(){]?.*[})]+"
убирает скрипт, но не все, вот что остается:
{ { ; else{ ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; { { ; ; ; ; ; ; ;

Решение задачи: «Regex - убрать ненужный JavaScript из текста»

textual
Листинг программы
private static string RemoveJavaScript(string text)
        {
            int first = text.IndexOf("$(document)", System.StringComparison.OrdinalIgnoreCase);
            int last = text.LastIndexOf("})", System.StringComparison.OrdinalIgnoreCase);
            
            if (!first.Equals(-1) && !last.Equals(-1))
            {
                var sb = new StringBuilder();
                sb.Append(text.Substring(0, first));
                sb.Append(text.Substring(last + 2, text.Length - (last + 2)));
                return sb.ToString();
            }
            return text;
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5