Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Нужна помощь. Как убрать теги в текстовом поле / 12 сообщений из 12, страница 1 из 1
17.02.2021, 18:00
    #40046360
Alekx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь. Как убрать теги в текстовом поле
Всем Добрый день !!!

Помогите пожалуйта справится с такой задачей:
В таблице есть текстовое поле:
IE_DETAIL_TEXT<p><b>Иванов</b></p><p><b>Иван </b><b>Иванович</b>Рост - 1.73 м<br></p><p><strong>

Как убрать теги чтобы значения в поле IE_DETAIL_TEXT выглядело: Иванов Иван Иванович Рост - 1.73 м

Количество тегов и текста разное.

Replace(Replace(IE_DETAIL_TEXT, "<p>", ""),"</p>","") - думаю плохой вариант.
...
Рейтинг: 0 / 0
17.02.2021, 18:07
    #40046362
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь. Как убрать теги в текстовом поле
Конечный автомат.

Подозреваю, что кроме тегов, может потребоваться еще и символы > < & и прочие преобразовывать в обычные.
...
Рейтинг: 0 / 0
17.02.2021, 18:35
    #40046379
Alekx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь. Как убрать теги в текстовом поле
Leonid Kudryavtsev,

> < & таких символов нет
...
Рейтинг: 0 / 0
17.02.2021, 18:51
    #40046392
Swa111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь. Как убрать теги в текстовом поле
Alekx,

Код: vbnet
1.
2.
3.
4.
5.
6.
    Dim RegEx As Object: Set RegEx = CreateObject("VBScript.RegExp")
    RegEx.Global = True
    RegEx.Pattern = "</?(p|b|strong)>"
    IE_DETAIL_TEXT = RegEx.Replace(IE_DETAIL_TEXT, " ")
    RegEx.Pattern = "\s{2,}"
    IE_DETAIL_TEXT = RegEx.Replace(IE_DETAIL_TEXT, " ")
...
Рейтинг: 0 / 0
17.02.2021, 18:53
    #40046393
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь. Как убрать теги в текстовом поле
Я имел в виду, что если есть теги, то вполне возможно встретить и сочетание букв "& a m p ;", "& g t ;", "& l t ;" и другие

А так конечный автомат:

читаем символ
если не tag и < - tag = true
если не tag и прочий символ - копируем в выходной поток
если tag и > - tag = false
если tag и прочий символ - просто игнорируем
гото в начало
...
Рейтинг: 0 / 0
17.02.2021, 19:15
    #40046401
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь. Как убрать теги в текстовом поле
для ленивых
Код: vbnet
1.
2.
3.
4.
5.
6.
Function test1(html As String)
    With CreateObject("htmlfile")
        .body.innerHTML = html
        test1 = .body.outerText
    End With
End Function


только вот, перевод строки остается ...
Код: vbnet
1.
2.
3.
?test1("<p><b>Иванов</b></p><p><b>Иван </b><b>Иванович</b>Рост - 1.73 м<br></p><p><strong>")
Иванов
Иван ИвановичРост - 1.73 м
...
Рейтинг: 0 / 0
17.02.2021, 19:31
    #40046413
Alekx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь. Как убрать теги в текстовом поле
court,

Может так побороть Replace(test1([IE_DETAIL_TEXT]);Chr(10);" ")?
...
Рейтинг: 0 / 0
17.02.2021, 20:05
    #40046429
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь. Как убрать теги в текстовом поле
И еще вариант
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Private Sub Test()
    Dim strX As String, arrX() As Byte, c As Variant, ss, b
    strX = "<kf>бла<fd/>бла"
    arrX = StrConv(strX, vbFromUnicode)
     For Each c In arrX
    If c > 42 And c < 122 And c <> 62 Then c = 42
    If c = 62 Then c = 32
    ss = ss & Chr(c)
    Next
    Debug.Print ss
    b = Replace(Replace(ss, "* ", ""), "*", "")
    Debug.Print LTrim(b)
End Sub


Код: vbnet
1.
2.
*** бла**** бла
бла бла
...
Рейтинг: 0 / 0
17.02.2021, 20:39
    #40046439
DarkMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь. Как убрать теги в текстовом поле
court
для ленивых

И для особо ленивых , правда не VBA , a PHP
Код: php
1.
2.
3.
4.
5.
 <?php
  $string="<p><b>Иванов</b></p><p><b>Иван </b><b>Иванович</b>Рост - 1.73 м<br></p><p><strong>";
  echo strip_tags(preg_replace("/[<]/", ' <', $string));
?>
Иванов Иван Иванович Рост - 1.73 м 
...
Рейтинг: 0 / 0
17.02.2021, 20:42
    #40046441
DarkMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь. Как убрать теги в текстовом поле
court
только вот, перевод строки остается ..

Это не перевод , скорее всего абзац <p> отрабатывает.
...
Рейтинг: 0 / 0
17.02.2021, 23:27
    #40046475
DarkMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь. Как убрать теги в текстовом поле
Swa111
Alekx,

Код: vbnet
1.
2.
3.
4.
5.
6.
    Dim RegEx As Object: Set RegEx = CreateObject("VBScript.RegExp")
    RegEx.Global = True
    RegEx.Pattern = "</?(p|b|strong)>"
    IE_DETAIL_TEXT = RegEx.Replace(IE_DETAIL_TEXT, " ")
    RegEx.Pattern = "\s{2,}"
    IE_DETAIL_TEXT = RegEx.Replace(IE_DETAIL_TEXT, " ")



Я извиняюсь , в Вашем варианте не удаляет <br> , может так попробовать ???

Код: vbnet
1.
2.
3.
4.
5.
6.
    RegEx.Global = True
   'RegEx.Pattern = "</?(p|b|strong)>"
    RegEx.Pattern = "<.+?>"
    IE_DETAIL_TEXT = RegEx.Replace(IE_DETAIL_TEXT, " ")
    RegEx.Pattern = "\s{2,}"
    IE_DETAIL_TEXT = RegEx.Replace(IE_DETAIL_TEXT, " ")
...
Рейтинг: 0 / 0
19.02.2021, 20:39
    #40047328
Alekx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь. Как убрать теги в текстовом поле
Всем БОЛЬШОЕ СПАСИБО !!!
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Нужна помощь. Как убрать теги в текстовом поле / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]