4 changed files with 68 additions and 5 deletions
@ -0,0 +1,29 @@ |
|||||||
|
package utils |
||||||
|
|
||||||
|
import ( |
||||||
|
"strings" |
||||||
|
|
||||||
|
"github.com/microcosm-cc/bluemonday" |
||||||
|
) |
||||||
|
|
||||||
|
// StripHTML will strip HTML tags from a string.
|
||||||
|
func StripHTML(s string) string { |
||||||
|
p := bluemonday.NewPolicy() |
||||||
|
return p.Sanitize(s) |
||||||
|
} |
||||||
|
|
||||||
|
// MakeSafeStringOfLength will take a string and strip HTML tags,
|
||||||
|
// trim whitespace, and limit the length.
|
||||||
|
func MakeSafeStringOfLength(s string, length int) string { |
||||||
|
newString := s |
||||||
|
newString = StripHTML(newString) |
||||||
|
|
||||||
|
if len(newString) > length { |
||||||
|
newString = newString[:length] |
||||||
|
} |
||||||
|
|
||||||
|
newString = strings.ReplaceAll(newString, "\r", "") |
||||||
|
newString = strings.TrimSpace(newString) |
||||||
|
|
||||||
|
return newString |
||||||
|
} |
||||||
@ -0,0 +1,32 @@ |
|||||||
|
package utils |
||||||
|
|
||||||
|
import ( |
||||||
|
"fmt" |
||||||
|
"testing" |
||||||
|
) |
||||||
|
|
||||||
|
// TestStripHTML tests the StripHTML function.
|
||||||
|
func TestStripHTML(t *testing.T) { |
||||||
|
requestedString := `<p><img src="img.png"/>Some text</p>` |
||||||
|
expectedResult := `Some text` |
||||||
|
|
||||||
|
result := StripHTML(requestedString) |
||||||
|
fmt.Println(result) |
||||||
|
|
||||||
|
if result != expectedResult { |
||||||
|
t.Errorf("Expected %s, got %s", expectedResult, result) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
// TestSafeString tests the TestSafeString function.
|
||||||
|
func TestSafeString(t *testing.T) { |
||||||
|
requestedString := `<p><img src="img.png"/> Some text blah blah blah blah blah blahb albh</p>` |
||||||
|
expectedResult := `Some te` |
||||||
|
|
||||||
|
result := MakeSafeStringOfLength(requestedString, 10) |
||||||
|
fmt.Println(result) |
||||||
|
|
||||||
|
if result != expectedResult { |
||||||
|
t.Errorf("Expected %s, got %s", expectedResult, result) |
||||||
|
} |
||||||
|
} |
||||||
Loading…
Reference in new issue