什么是从html标签清除字符串的最佳方法

时间:2019-01-30 09:15:48

标签: go

例如,有一个字符串。 从html内容中清除字符串的最佳方法是什么?

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

结果应为Thank you.

2 个答案:

答案 0 :(得分:4)

首先,请不要使用正则表达式。坏事can happen

更严重的是,如果您不信任 HTML内容,建议您使用bluemonday之类的东西,目前您可以在生产中使用它。

对于一种更简单的方法,要使某件事情快速运行,您可以使用其他满足您需要的库,例如grokify/html-strip-tags-go,或者在Eitam的答案中通过拆分字符串自己滚动。

祝你好运!

答案 1 :(得分:2)

分割字符串的最佳方法是搜索特定字符串, (根据您的情况"</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>",否则会出现恐慌:运行时错误:索引超出范围