mirror of
https://gitee.com/johng/gf.git
synced 2024-12-02 20:28:17 +08:00
53 lines
1.5 KiB
Go
53 lines
1.5 KiB
Go
// Copyright GoFrame Author(https://goframe.org). All Rights Reserved.
|
|
//
|
|
// This Source Code Form is subject to the terms of the MIT License.
|
|
// If a copy of the MIT was not distributed with this file,
|
|
// You can obtain one at https://github.com/gogf/gf.
|
|
|
|
package gstr
|
|
|
|
import "strings"
|
|
|
|
// Str returns part of `haystack` string starting from and including
|
|
// the first occurrence of `needle` to the end of `haystack`.
|
|
// See http://php.net/manual/en/function.strstr.php.
|
|
func Str(haystack string, needle string) string {
|
|
if needle == "" {
|
|
return ""
|
|
}
|
|
pos := strings.Index(haystack, needle)
|
|
if pos == NotFoundIndex {
|
|
return ""
|
|
}
|
|
return haystack[pos+len([]byte(needle))-1:]
|
|
}
|
|
|
|
// StrEx returns part of `haystack` string starting from and excluding
|
|
// the first occurrence of `needle` to the end of `haystack`.
|
|
func StrEx(haystack string, needle string) string {
|
|
if s := Str(haystack, needle); s != "" {
|
|
return s[1:]
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// StrTill returns part of `haystack` string ending to and including
|
|
// the first occurrence of `needle` from the start of `haystack`.
|
|
func StrTill(haystack string, needle string) string {
|
|
pos := strings.Index(haystack, needle)
|
|
if pos == NotFoundIndex || pos == 0 {
|
|
return ""
|
|
}
|
|
return haystack[:pos+1]
|
|
}
|
|
|
|
// StrTillEx returns part of `haystack` string ending to and excluding
|
|
// the first occurrence of `needle` from the start of `haystack`.
|
|
func StrTillEx(haystack string, needle string) string {
|
|
pos := strings.Index(haystack, needle)
|
|
if pos == NotFoundIndex || pos == 0 {
|
|
return ""
|
|
}
|
|
return haystack[:pos]
|
|
}
|