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;
}