diff --git a/template/helpers.go b/template/helpers.go index 2c810fb..8825b0e 100644 --- a/template/helpers.go +++ b/template/helpers.go @@ -17,6 +17,7 @@ package template import ( "fmt" "net/url" + "regexp" "strings" "time" "unicode" @@ -39,6 +40,7 @@ var ( "lowercase": strings.ToLower, "trim": strings.TrimSpace, "title": strings.Title, + "regexReplace": regexReplace, } ) @@ -117,3 +119,8 @@ func uppercaseFirst(s string) string { return s } + +func regexReplace(pattern string, input string, replacement string) string { + re := regexp.MustCompile(pattern) + return re.ReplaceAllString(input, replacement) +} diff --git a/template/helpers_test.go b/template/helpers_test.go index 7dd4cd0..686ee64 100644 --- a/template/helpers_test.go +++ b/template/helpers_test.go @@ -90,3 +90,11 @@ func TestUppercaseFirst(t *testing.T) { } } } + +func TestRegexReplace(t *testing.T) { + expected := "hello-my-String-123" + actual := regexReplace("(.*?)\\/(.*)", "hello/my-String-123", "$1-$2") + if actual != "hello-my-String-123" { + t.Errorf("error, expected %s, got %s", expected, actual) + } +}