Имя: Пароль:
1C
 
Удаление html тегов из строки
0 serega33
 
02.03.09
16:20
Есть строка хтмл кода:
Текст <b>ТекстВТеге</b> <b><span>в теге</span></b>

Как из нее получить - Текст ТекстВТеге в теге

может есть готовые регулярные выражения какие то?
Заранее благодарю за любую помощь
1 Fragster
 
гуру
02.03.09
16:21
ага, регулярное выражение <[^>]+> заменить на ""...
2 serega33
 
02.03.09
16:29
(1)
пример вот нашел:


Процедура RegExp_Exec()
   
   //Для 1С 7.7:
   Истина=-1;
   Ложь=0;
   RegExp = CreateObject("VBScript.RegExp");
   
   RegExp.IgnoreCase = Ложь; //Игнорировать регистр
   RegExp.Global = Истина; //Поиск всех вхождений шаблона
   RegExp.MultiLine = Ложь; //Многострочный режим
   
   RegExp.Pattern = "<[^>]*>"; //Ищем теги HTML
   Matches=RegExp.Execute("Это <hr> строка <br> с тегами HTML");
   ЧислоВхождений=Matches.Count();
   Если ЧислоВхождений>0 Тогда
       Для к = 0 По ЧислоВхождений-1 Цикл
           Match = Matches.Item(к);
           Сообщить("Найден тег:"+ Match.Value);
       КонецЦикла;
   Иначе
       Сообщить("Вхождений шаблона не найдено");
   КонецЕсли;
   //Выдаст в окно сообщений:    
   //Найден тег:<hr>
   //Найден тег:<br>    
КонецПроцедуры


а что то так и недогоню как в своем случае применить? где именно замена происходит?
3 Fragster
 
гуру
02.03.09
16:40
это пример на поиск
4 Fragster
 
гуру
02.03.09
16:42
замена там же, где ты этот пример нашел, но чуть ниже:
  стр=RegExp.Replace(стр, "");

ну и в v8 - новый ComОбъект вместо "СоздатьОбъект", а также истину и ложь определять не надо
5 serega33
 
02.03.09
16:46
(4) все догнал спасибо большое:

в 8.1:

Функция RegExp_Exec(Строка)
   
   //Для 1С 7.7:
   //Истина=-1;
   //Ложь=0;
   RegExp = Новый COMОбъект("VBScript.RegExp");
   
   RegExp.IgnoreCase = Ложь; //Игнорировать регистр
   RegExp.Global = Истина; //Поиск всех вхождений шаблона
   RegExp.MultiLine = Ложь; //Многострочный режим
   
   RegExp.Pattern = "<[^>]*>"; //Ищем теги HTML
   Matches=RegExp.Execute(Строка);
   ЧислоВхождений=Matches.Count();
   Если ЧислоВхождений>0 Тогда
       Для к = 0 По ЧислоВхождений-1 Цикл
           Match = Matches.Item(к);
           Строка = СтрЗаменить(Строка, Match.Value, "");
           //Сообщить("Найден тег:"+ Match.Value);
       КонецЦикла;
   Иначе
       //Сообщить("Вхождений шаблона не найдено");
   КонецЕсли;
   
   Возврат Строка;
   //Выдаст в окно сообщений:    
   //Найден тег:<hr>
   //Найден тег:<br>    
   
КонецФункции
6 Fragster
 
гуру
02.03.09
17:07
(5) мля...

   RegExp = Новый COMОбъект("VBScript.RegExp");
   
   RegExp.IgnoreCase = Ложь; //Игнорировать регистр  
   RegExp.Global = Истина; //Поиск всех вхождений шаблона  
   RegExp.MultiLine = Ложь; //Многострочный режим  
   
   RegExp.Pattern = "<[^>]*>"; //Ищем теги HTML  
   стр=RegExp.Replace(стр, "");
7 Новичок
 
02.03.09
17:49
Если с веббраузером работаешь, то там у DocumentElement есть свойство innetHTML с тэгами, и есть Text, без тэгов уже.
8 Fragster
 
гуру
02.03.09
17:49
(7)верно, только innerHTML и innerText
9 Новичок
 
02.03.09
18:02
(8) извиняюсь, уже запамятовал.