Каков наилучший способ очистить строку от тегов HTML - PullRequest
0 голосов
/ 30 января 2019

Например, есть строка.Каков наилучший способ очистки строки из содержимого html?

s := "<b>John</b> Thank you."

Результат должен быть Thank you.

Ответы [ 2 ]

0 голосов
/ 30 января 2019

Прежде всего, пожалуйста, не используйте регулярные выражения.Плохие вещи могут случиться .

На более серьезном замечании, если вы не можете доверять содержимому HTML, я предлагаю использовать что-то вроде bluemonday , который в настоящее время вы можете использовать в производстве.

Для более простого подхода, чтобы что-то работало быстро, вы можете использовать любую другую библиотеку, такую ​​как grokify / html-strip-tags-go , который будет соответствовать вашим потребностям, или, как в ответе Eitam, бросьте свои собственные, разделив строки.

Удачи!

0 голосов
/ 30 января 2019

Лучший способ нарезать строку - это найти указанную строку (в вашем случае "</b>") и отделить его от другой строки.

Пример:

package main

import (
    "fmt"
    "strings"
)

func main() {
    html := "<b>John</b> Thank you."
    fmt.Println(html)
    thanks := strings.Split(html, "</b>")[1]
    fmt.Println(thanks)
}

Результат: Спасибо.

Ссылка на игровую площадку: https://play.golang.org/p/yOc3G0YeNTe

Также, пожалуйста, учтите TrimSpace, чтобы предотвратить ненужный интервал

package main

import (
    "fmt"
    "strings"
)

func main() {
    html := "<b>John</b> Thank you."
    fmt.Println(html)
    thanks := strings.Split(html, "</b>")[1]
    fmt.Println(thanks)
    cleanThanks := strings.TrimSpace(thanks)
    fmt.Println(cleanThanks)
}

Результат:

 Thank you.

Thank you.

Ссылка на игровое поле: https://play.golang.org/p/S7BRM7jOvtL

Обратите внимание, что вы должны проверить, что строка содержит "</b>", если нет, вы получите панику: ошибка во время выполнения: индекс выходит за пределы диапазона

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...