Kontentga o‘tish

Matnllar

Kirish

Goravel sizga satrlarni osongina boshqarish imkonini beruvchi ravon satrlarni boshqarish kutubxonasini taqdim etadi. Ravon Strings sizga bir nechta satr operatsiyalarini usul zanjiri orqali birlashtirish imkonini beradi, bu yerda usullarning aksariyati qo'shimcha usullarni zanjirlash imkonini beruvchi support/str.String misolini qaytaradi. Zanjirli operatsiyalarni qo'llagandan so'ng, oxirgi satr qiymatini olish uchun siz asosiy "satr" qiymatini qaytaradigan "String" usulini chaqirishingiz mumkin.

go
import "github.com/goravel/framework/support/str"

str.Of("  Goravel  ").Trim().Lower().UpperFirst().String() // "Goravel"

Mavjud usullar

Of

Of usuli berilgan satrdan yangi ravon satr namunasini yaratadi.

go
import "github.com/goravel/framework/support/str"

str.Of("Goravel")

After

After usuli satrdagi belgilangan qiymatdan keyingi qismini qaytaradi. Agar qiymat bo'sh satr bo'lsa yoki asl satr ichida mavjud bo'lmasa, to'liq satr qaytariladi.

go
import "github.com/goravel/framework/support/str"

str.Of("Hello World!").After("Hello").String() // " World!"

AfterLast

AfterLast usuli satrdagi belgilangan qiymatning oxirgi paydo bo'lishidan keyingi qismini qaytaradi. Agar qiymat bo'sh satr bo'lsa yoki asl satr ichida mavjud bo'lmasa, to'liq satr qaytariladi.

go
import "github.com/goravel/framework/support/str"

str.Of("docs.goravel.dev").AfterLast(".").String() // "dev"

Append

Append usuli belgilangan qiymatni satr oxiriga qo'shadi.

go
import "github.com/goravel/framework/support/str"

str.Of("Bowen").Append(" Han").String() // "Bowen Han"

Basename

Basename usuli yo'lning oxirgi nom komponentini qaytaradi, ixtiyoriy ravishda asosiy nomdan belgilangan qo'shimchani olib tashlaydi.

go
import "github.com/goravel/framework/support/str"

str.Of("framework/support/str").Basename().String() // "str"

str.Of("framework/support/str.go").Basename(".go").String() // "str"

Before

Before usuli satrdagi belgilangan qiymatdan oldingi qismini qaytaradi. Agar qiymat bo'sh satr bo'lsa yoki asl satr ichida mavjud bo'lmasa, to'liq satr qaytariladi.

go
import "github.com/goravel/framework/support/str"

str.Of("Hello World!").Before("World").String() // "Hello "

BeforeLast

BeforeLast usuli satrdagi belgilangan qiymatning oxirgi paydo bo'lishidan oldingi qismini qaytaradi. Agar qiymat bo'sh satr bo'lsa yoki asl satr ichida mavjud bo'lmasa, to'liq satr qaytariladi.

go
import "github.com/goravel/framework/support/str"

str.Of("docs.goravel.dev").BeforeLast(".").String() // "docs.goravel"

Between

Between usuli satrning berilgan ikki qiymat orasidagi qismini qaytaradi.

go
import "github.com/goravel/framework/support/str"

str.Of("[Hello] World!").Between("[", "]").String() // "Hello"

BetweenFirst

BetweenFirst usuli satrning berilgan ikki qiymatning birinchi paydo bo'lishi orasidagi qismini qaytaradi.

go
import "github.com/goravel/framework/support/str"

str.Of("[Hello] [World]!").BetweenFirst("[", "]").String() // "Hello"

Camel

Camel usuli satrni camelCase ga o'zgartiradi.

go
import "github.com/goravel/framework/support/str"

str.Of("hello_world").Camel().String() // "helloWorld"

CharAt

CharAt usuli berilgan indeksdagi belgini qaytaradi. Agar indeks chegaradan tashqarida bo'lsa, bo'sh satr qaytariladi.

go
import "github.com/goravel/framework/support/str"

str.Of("Goravel").CharAt(1) // "o"

ChopEnd

ChopEnd usuli berilgan qiymat(lar)ni satr oxiridan olib tashlaydi.

go
import "github.com/goravel/framework/support/str"

str.Of("https://goravel.com").ChopEnd(".dev", ".com").String() // https://goravel

ChopStart

ChopStart usuli berilgan qiymat(lar)ni satr boshidan olib tashlaydi.

go
import "github.com/goravel/framework/support/str"

str.Of("https://goravel.dev").ChopStart("http://", "https://").String() // goravel.dev

Contains

Contains usuli berilgan satr berilgan qiymatni o'z ichiga olganligini aniqlaydi. Usul registrga sezgir. Agar bir nechta qiymat berilgan bo'lsa, satr qiymatlardan birortasini o'z ichiga olsa, true qaytariladi.

go
import "github.com/goravel/framework/support/str"

str.Of("Goravel").Contains("Gor") // true

str.Of("Hello World").Contains("Gor", "Hello") // true

ContainsAll

ContainsAll usuli berilgan satr berilgan barcha qiymatlarni o'z ichiga olganligini aniqlaydi. Usul registrga sezgir.

go
import "github.com/goravel/framework/support/str"

str.Of("Hello World").ContainsAll("Hello", "World") // true

str.Of("Hello World").ContainsAll("Hello", "Gor") // false

Dirname

Dirname usuli yo'lning ota-ona qismini qaytaradi.

go
import "github.com/goravel/framework/support/str"

str.Of("framework/support/str").Dirname().String() // "framework/support"

Ixtiyoriy ravishda, yo'ldan kesib tashlash uchun kataloq darajasini ko'rsatishingiz mumkin.

go
import "github.com/goravel/framework/support/str"

str.Of("framework/support/str").Dirname(2).String() // "framework"

EndsWith

EndsWith usuli berilgan satr berilgan qiymat bilan tugaydiganligini aniqlaydi. Usul registrga sezgir.

go
import "github.com/goravel/framework/support/str"

str.Of("Goravel").EndsWith("vel") // true

Satr qiymatlardan birortasi bilan tugashini aniqlash uchun usulga bir nechta qiymat o'tkazishingiz mumkin.

go
import "github.com/goravel/framework/support/str"

str.Of("Goravel").EndsWith("vel", "lie") // true

Exactly

Exactly usuli berilgan satr berilgan qiymatga ancha tengligini aniqlaydi. Usul registrga sezgir.

go
import "github.com/goravel/framework/support/str"

str.Of("Goravel").Exactly("Goravel") // true

Except

Except usuli satrdan berilgan qiymatning birinchi paydo bo'lishiga mos keladigan parchani ajratib oladi.

go
import "github.com/goravel/framework/support/str"

str.Of("This is a beautiful morning").
	Excerpt("beautiful", str.ExcerptOption{
        Radius: 5,
    }).String() // "...is a beautiful morn...

Bundan tashqari, parchoni ko'rsatish uchun ishlatiladigan satrni o'zgartirish uchun Omission opsiyasidan foydalanishingiz mumkin.

go
import "github.com/goravel/framework/support/str"

str.Of("This is a beautiful morning").
    Excerpt("beautiful", str.ExcerptOption{
        Radius: 5,
        Omission: "(...)"
    }).String() // "(...)is a beautiful morn(...)"

Explode

Explode usuli satrni berilgan ajratgich yordamida satrlar massiviga ajratadi.

go
import "github.com/goravel/framework/support/str"

str.Of("Hello World").Explode(" ") // []string{"Hello", "World"}

Finish

Finish usuli berilgan satr berilgan qiymat bilan tugashiga ishonch hosil qiladi. Agar satr allaqachon qiymat bilan tugasa, u qayta qo'shilmaydi.

go
import "github.com/goravel/framework/support/str"

str.Of("framework").Finish("/").String() // "framework/"

str.Of("framework/").Finish("/").String() // "framework/"

Headline

Headline usuli satrni sarlavhaga o'zgartiradi.

go
import "github.com/goravel/framework/support/str"

str.Of("bowen_han").Headline().String() // "Bowen Han"

str.Of("HelloWorld").Headline().String() // "Hello World"

Is

Is usuli berilgan satr berilgan andozaga mos kelishini aniqlaydi. Usul katta-kichik harflarga sezgir.

go
import "github.com/goravel/framework/support/str"

str.Of("foo123").Is("bar*", "baz*", "foo*") // true

IsEmpty

IsEmpty usuli berilgan satr bo‘sh ekanligini aniqlaydi.

go
import "github.com/goravel/framework/support/str"

str.Of("").IsEmpty() // true

IsNotEmpty

IsNotEmpty usuli berilgan satr bo‘sh emasligini aniqlaydi.

go
import "github.com/goravel/framework/support/str"

str.Of("Goravel").IsNotEmpty() // true

IsAscii

IsAscii usuli berilgan satr faqat ASCII belgilardan iborat ekanligini aniqlaydi.

go
import "github.com/goravel/framework/support/str"

str.Of("Goravel").IsAscii() // true

str.Of("你好").IsAscii() // false

IsSlice

IsSlice usuli berilgan satr kesim (slice) ekanligini aniqlaydi.

go
import "github.com/goravel/framework/support/str"

str.Of(`[{"name": "John"}, {"name": "Alice"}]`).IsSlice() // true

str.Of(`{"name": "John"}`).IsSlice() // false

IsMap

IsMap usuli berilgan satr xarita (map) ekanligini aniqlaydi.

go
import "github.com/goravel/framework/support/str"

str.Of(`{"name": "John"}`).IsMap() // true

str.Of(`[{"name": "John"}, {"name": "Alice"}]`).IsMap() // false

IsUlid

IsUlid usuli berilgan satr ULID ekanligini aniqlaydi.

go
import "github.com/goravel/framework/support/str"

str.Of("01E5Z6Z1Z6Z1Z6Z1Z6Z1Z6Z1Z6").IsUlid() // true

str.Of("krishan").IsUlid() // false

IsUuid

IsUuid usuli berilgan satr UUID ekanligini aniqlaydi.

go
import "github.com/goravel/framework/support/str"

str.Of("550e8400-e29b-41d4-a716-446655440000").IsUuid() // true

str.Of("krishan").IsUuid() // false

Kebab

Kebab usuli satrni kebab-case ga o‘zgartiradi.

go
import "github.com/goravel/framework/support/str"

str.Of("GoravelFramework").Kebab().String() // "goravel-framework"

LcFirst

LcFirst usuli satrning birinchi belgisini kichik harfga o‘zgartiradi.

go
import "github.com/goravel/framework/support/str"

str.Of("Goravel Framework").LcFirst().String() // "goravel Framework"

Length

Length usuli satr uzunligini qaytaradi.

go
import "github.com/goravel/framework/support/str"

str.Of("Goravel").Length() // 7

Limit

Limit usuli satrni berilgan uzunlikka qisqartiradi.

go
import "github.com/goravel/framework/support/str"

str.Of("This is a beautiful morning").Limit(7).String() // "This is..."

Ixtiyoriy ravishda, siz qisqartirishni ko‘rsatish uchun ishlatiladigan satrni o‘zgartirish uchun ikkinchi argumentni taqdim etishingiz mumkin.

go
import "github.com/goravel/framework/support/str"

str.Of("This is a beautiful morning").Limit(7, " (****)").String() // "This is (****)"

Lower

Lower usuli satrni kichik harflarga o‘zgartiradi.

go
import "github.com/goravel/framework/support/str"

str.Of("GORAVEL").Lower().String() // "goravel"

LTrim

LTrim usuli satrning chap tomonini kesib tashlaydi.

go
import "github.com/goravel/framework/support/str"

str.Of("  Goravel  ").LTrim().String() // "Goravel  "

str.Of("/framework/").LTrim("/").String() // "framework/"

Mask

Mask usuli satrni berilgan maska belgisi bilan yashiradi.

go
import "github.com/goravel/framework/support/str"

str.Of("krishan@email.com").Mask("*", 3).String() // "kri**************"

Agar kerak bo‘lsa, siz maska usuliga manfiy sonni taqdim etishingiz mumkin, bu usulga satr oxiridan yashirishni boshlashni ko‘rsatadi.

go
import "github.com/goravel/framework/support/str"

str.Of("krishan@email.com").Mask("*", -13, 3).String() // "kris***@email.com"

str.Of("krishan@email.com").Mask("*", -13).String() // "kris**************"

Match

Match usuli berilgan satr berilgan oddiy ifodaga mos kelishini aniqlaydi.

go
import "github.com/goravel/framework/support/str"

str.Of("This is a (test) string").Match(`\([^)]+\)`).String() // (test)

MatchAll

MatchAll usuli berilgan satr berilgan barcha oddiy ifodalarga mos kelishini aniqlaydi.

go
import "github.com/goravel/framework/support/str"

str.Of("abc123def456def").MatchAll(`\d+`) // []string{"123", "456"}

IsMatch

IsMatch usuli berilgan satr (har qanday) berilgan oddiy ifodaga mos kelishini aniqlaydi.

go
import "github.com/goravel/framework/support/str"

str.Of("Hello, Goravel!").IsMatch(`(?i)goravel`, `goravel!(.*)`) // true

NewLine

NewLine usuli satrga yangi qator belgisini qo‘shadi.

go
import "github.com/goravel/framework/support/str"

str.Of("Goravel").NewLine(2).Append("Framework").String() // "Goravel\n\nFramework"

PadBoth

PadBoth usuli satrning ikkala tomonini to‘ldiradi.

go
import "github.com/goravel/framework/support/str"

str.Of("Hello").PadBoth(10, "_").String() // "__Hello___"

PadLeft

PadLeft usuli satrning chap tomonini to‘ldiradi.

go
import "github.com/goravel/framework/support/str"

str.Of("Hello").PadLeft(10, "_").String() // "_____Hello"

PadRight

PadRight usuli satrning o‘ng tomonini to‘ldiradi.

go
import "github.com/goravel/framework/support/str"

str.Of("Hello").PadRight(10, "_").String() // "Hello_____"

Pipe

Pipe usuli satrni berilgan yopilish (closure) yordamida o‘zgartirishga imkon beradi.

go
import "github.com/goravel/framework/support/str"

str.Of("Goravel").Pipe(func(s string) string {
    return s + " Framework"
}).String() // "Goravel Framework"

Plural

Plural usuli birlik shaklidagi satrni ko‘plik shakliga o‘zgartiradi. Bu funksiya pluralizer tomonidan qo‘llab-quvvatlanadigan har qanday tilni qo‘llab-quvvatlaydi.

go
import "github.com/goravel/framework/support/str"

plural := str.Of("goose").Plural().String()
// "geese"

Satrning birlik yoki ko‘plik shaklini olish uchun funksiyaga butun son argumentini taqdim etishingiz mumkin:

go
import "github.com/goravel/framework/support/str"

plural := str.Of("goose").Plural(2).String()
// "geese"

plural = str.Of("goose").Plural(1).String()
// "goose"

Prepend

Prepend usuli berilgan qiymatni satrning boshiga qo‘shadi.

go
import "github.com/goravel/framework/support/str"

str.Of("Framework").Prepend("Goravel ").String() // "Goravel Framework"

Remove

Remove usuli berilgan qiymat(lar)ni satrdan olib tashlaydi.

go
import "github.com/goravel/framework/support/str"

str.Of("Hello World").Remove("World").String() // "Hello "

str.Of("Hello World").Remove("World", "Hello").String() // " "

Takrorlash

Takrorlash metodi matnni berilgan son marta takrorlaydi.

go
import "github.com/goravel/framework/support/str"

str.Of("a").Repeat(2).String() // "aa"

Almashtirish

Almashtirish metodi matndagi berilgan qiymatni almashtiradi.

go
import "github.com/goravel/framework/support/str"

str.Of("Hello World").Replace("World", "Krishan").String() // "Hello Krishan"

Sukut boʻyicha, Almashtirish metodi katta-kichik harflarga sezgir. Agar metod katta-kichik harflarga sezgir boʻlmasligini xohlasangiz, uchinchi argument sifatida false ni oʻtkazishingiz mumkin.

go
import "github.com/goravel/framework/support/str"

str.Of("Hello World").Replace("world", "Krishan", false).String() // "Hello Krishan"

Oxirini almashtirish

ReplaceEnd metodi matndagi berilgan qiymatning oxirgi takrorlanishini faqat matn oxirida boʻlsa almashtiradi.

go
import "github.com/goravel/framework/support/str"

str.Of("Hello World").ReplaceEnd("World", "Goravel").String() // "Hello Goravel"

str.Of("Hello World").ReplaceEnd("Hello", "Goravel").String() // "Hello World"

Birinchi takrorlanishni almashtirish

ReplaceFirst metodi matndagi berilgan qiymatning birinchi takrorlanishini almashtiradi.

go
import "github.com/goravel/framework/support/str"

str.Of("Hello World").ReplaceFirst("World", "Goravel").String() // "Hello Goravel"

Oxirgi takrorlanishni almashtirish

ReplaceLast metodi matndagi berilgan qiymatning oxirgi takrorlanishini almashtiradi.

go
import "github.com/goravel/framework/support/str"

str.Of("Hello World").ReplaceLast("World", "Goravel").String() // "Hello Goravel"

Moslamalarni almashtirish

ReplaceMatches metodi matndagi berilgan oddiy ifoda moslamalarini almashtiradi.

go
import "github.com/goravel/framework/support/str"

str.Of("Hello, Goravel!").ReplaceMatches(`goravel!(.*)`, "Krishan") // "Hello, Krishan!"

Boshini almashtirish

ReplaceStart metodi matndagi berilgan qiymatning birinchi takrorlanishini faqat matn boshida boʻlsa almashtiradi.

go
import "github.com/goravel/framework/support/str"

str.Of("Hello World").ReplaceStart("Hello", "Goravel").String() // "Goravel World"

str.Of("Hello World").ReplaceStart("World", "Goravel").String() // "Hello World"

Oʻng tomondan kesish

RTrim metodi matnning oʻng tomonini kesadi.

go
import "github.com/goravel/framework/support/str"

str.Of("  Goravel  ").RTrim().String() // "  Goravel"

str.Of("/framework/").RTrim("/").String() // "/framework"

Singular

Singular usuli satrni uning birlik shakliga o‘zgartiradi. Bu funksiya pluralizer tomonidan qo‘llab-quvvatlanadigan har qanday tilni qo‘llab-quvvatlaydi.

go
import "github.com/goravel/framework/support/str"

singular := str.Of("heroes").Singular().String()
// "hero"

Iloncha

Iloncha metodi matnni iloncha_kichik formatiga oʻtkazadi.

go
import "github.com/goravel/framework/support/str"

str.Of("GoravelFramework").Snake().String() // "goravel_framework"

Ajratish

Ajratish metodi matnni berilgan ajratgich yordamida matnlar massiviga ajratadi.

go
import "github.com/goravel/framework/support/str"

str.Of("Hello World").Split(" ") // []string{"Hello", "World"}

Siquvchan

Siquvchan metodi ketma-ket boʻsh joy belgilarini bitta boʻsh joy bilan almashtiradi.

go
import "github.com/goravel/framework/support/str"

str.Of("Hello    World").Squish().String() // "Hello World"

Boshlash

Boshlash metodi matn allaqachon berilgan qiymat bilan boshlanmasa, uning boshiga berilgan qiymatning bitta nusxasini qoʻshadi.

go
import "github.com/goravel/framework/support/str"

str.Of("framework").Start("/").String() // "/framework"

str.Of("/framework").Start("/").String() // "/framework"

Bilan boshlanadi

Bilan boshlanadi metodi berilgan matn (har qanday) berilgan qiymat(lar) bilan boshlanadimi yoki yoʻqligini aniqlaydi. Metod katta-kichik harflarga sezgir.

go
import "github.com/goravel/framework/support/str"

str.Of("Goravel").StartsWith("Gor") // true

str.Of("Hello World").StartsWith("Gor", "Hello") // true

Matn

Matn metodi matnni qaytaradi.

go
import "github.com/goravel/framework/support/str"

str.Of("Goravel").String() // "Goravel"

Studli

Studly metodi matnni StudlyCase formatiga oʻtkazadi.

go
import "github.com/goravel/framework/support/str"

str.Of("goravel_framework").Studly().String() // "GoravelFramework"

Kesma

Kesma metodi matnning berilgan indeksdan boshlab berilgan uzunlikdagi qismini qaytaradi.

go
import "github.com/goravel/framework/support/str"

str.Of("Goravel").Substr(1, 3) // "ora"

Almashtir

Almashtir metodi matndagi bir nechta qiymatlarni almashtiradi.

go
import "github.com/goravel/framework/support/str"

str.Of("Golang is awesome").Swap(map[string]string{
		"Golang":  "Go",
		"awesome": "excellent",
	}).String() // "Go is excellent"

Tap

Tepish metodi matnni berilgan yopiq funksiyaga oʻtkazadi va matnni qaytaradi.

go
import "github.com/goravel/framework/support/str"

str.Of("Goravel").Tap(func(s string) {
    fmt.Println(s)
}).String() // "Goravel"

Test

Test metodi berilgan matn berilgan oddiy ifodaga mos keladimi yoki yoʻqligini aniqlaydi.

go
import "github.com/goravel/framework/support/str"

str.Of("Hello, Goravel!").Test(`goravel!(.*)`) // true

Sarlavha

Sarlavha metodi matnni Sarlavha Katta formatiga oʻtkazadi.

go
import "github.com/goravel/framework/support/str"

str.Of("goravel framework").Title().String() // "Goravel Framework"

Kesish

Kesish metodi matnni kesadi.

go
import "github.com/goravel/framework/support/str"

str.Of("  Goravel  ").Trim().String() // "Goravel"

str.Of("/framework/").Trim("/").String() // "framework"

Birinchi harfni katta

UcFirst metodi matnning birinchi belgisini katta harfga oʻtkazadi.

go
import "github.com/goravel/framework/support/str"

str.Of("goravel framework").UcFirst().String() // "Goravel framework"

Katta harflar bilan ajratish

UcSplit metodi matnni katta harflar yordamida matnlar massiviga ajratadi.

go
import "github.com/goravel/framework/support/str"

str.Of("GoravelFramework").UcSplit() // []string{"Goravel", "Framework"}

Agar boʻlmasa

Unless metodi matnni berilgan yopiq funksiyaga oʻtkazadi va agar berilgan shart false boʻlsa, matnni qaytaradi.

go
import "github.com/goravel/framework/support/str"

str.Of("Goravel").Unless(func(s *String) bool {
        return false
    }, func(s *String) *String {
        return Of("Fallback Applied")
    }).String() // "Fallback Applied"

Katta

Upper metodi matnni katta harflarga oʻtkazadi.

go
import "github.com/goravel/framework/support/str"

str.Of("goravel").Upper().String() // "GORAVEL"

Qachonki

When usuli satrni berilgan yopilishga uzatadi va agar berilgan shart true bo‘lsa, satrni qaytaradi.

go
import "github.com/goravel/framework/support/str"

str.Of("Bowen").When(true, func(s *str.String) *str.String {
    return s.Append(" Han")
}).String() // "Bowen Han"

Agar kerak bo‘lsa, When usuliga uchinchi argument sifatida yopilishni taqdim etishingiz mumkin, u shart false bo‘lganda bajariladi.

WhenContains

WhenContains usuli satrni berilgan yopilishga uzatadi va agar berilgan satr berilgan qiymatni o‘z ichiga olsa, satrni qaytaradi.

go
import "github.com/goravel/framework/support/str"

str.Of("Hello Bowen").WhenContains("Hello", func(s *str.String) *str.String {
    return s.Append(" Han")
}).String() // "Hello Bowen Han"

Agar kerak bo‘lsa, WhenContains usuliga uchinchi argument sifatida yopilishni taqdim etishingiz mumkin, u satr berilgan qiymatni o‘z ichiga olmaganda bajariladi.

WhenContainsAll

WhenContainsAll usuli satrni berilgan yopilishga uzatadi va agar berilgan satr berilgan barcha qiymatlarni o‘z ichiga olsa, satrni qaytaradi.

go
import "github.com/goravel/framework/support/str"

str.Of("Hello Bowen").WhenContainsAll([]string{"Hello", "Bowen"}, func(s *str.String) *str.String {
    return s.Append(" Han")
}).String() // "Hello Bowen Han"

Agar kerak bo‘lsa, WhenContainsAll usuliga uchinchi argument sifatida yopilishni taqdim etishingiz mumkin, u satr berilgan barcha qiymatlarni o‘z ichiga olmaganda bajariladi.

WhenEmpty

WhenEmpty usuli satrni berilgan yopilishga uzatadi va agar berilgan satr bo‘sh bo‘lsa, satrni qaytaradi.

go
import "github.com/goravel/framework/support/str"

str.Of("").WhenEmpty(func(s *str.String) *str.String {
    return s.Append("Goravel")
}).String() // "Goravel"

WhenIsAscii

WhenIsAscii usuli satrni berilgan yopilishga uzatadi va agar berilgan satr faqat ASCII belgilardan iborat bo‘lsa, satrni qaytaradi.

go
import "github.com/goravel/framework/support/str"

str.Of("Goravel").WhenIsAscii(func(s *str.String) *str.String {
    return s.Append(" Framework")
}).String() // "Goravel Framework"

str.Of("你好").WhenIsAscii(func(s *str.String) *str.String {
    return s.Append(" Framework")
}).String() // "你好"

WhenNotEmpty

WhenNotEmpty usuli satrni berilgan yopilishga uzatadi va agar berilgan satr bo‘sh bo‘lmasa, satrni qaytaradi.

go
import "github.com/goravel/framework/support/str"

str.Of("Goravel").WhenNotEmpty(func(s *str.String) *str.String {
    return s.Append(" Framework")
}).String() // "Goravel Framework"

WhenStartsWith

WhenStartsWith usuli satrni berilgan yopilishga uzatadi va agar berilgan satr berilgan qiymat bilan boshlansa, satrni qaytaradi.

go
import "github.com/goravel/framework/support/str"

str.Of("hello world").WhenStartsWith("hello", func(s *str.String) *str.String {
    return s.Title()
}).String() // "Hello World"

WhenEndsWith

WhenEndsWith usuli satrni berilgan yopilishga uzatadi va agar berilgan satr berilgan qiymat bilan tugasa, satrni qaytaradi.

go
import "github.com/goravel/framework/support/str"

str.Of("hello world").WhenEndsWith("world", func(s *str.String) *str.String {
    return s.Title()
}).String() // "Hello World"

WhenExactly

WhenExactly usuli satrni berilgan yopilishga uzatadi va agar berilgan satr berilgan qiymatga aniq teng bo‘lsa, satrni qaytaradi.

go
import "github.com/goravel/framework/support/str"

str.Of("Goravel").WhenExactly("Goravel", func(s *str.String) *str.String {
    return s.Append(" Framework")
}).String() // "Goravel Framework"

WhenNotExactly

WhenNotExactly usuli satrni berilgan yopilishga uzatadi va agar berilgan satr berilgan qiymatga aniq teng bo‘lmasa, satrni qaytaradi.

go
import "github.com/goravel/framework/support/str"

str.Of("Goravel").WhenNotExactly("Goravel", func(s *str.String) *str.String {
    return s.Append(" Framework")
}).String() // "Goravel"

WhenIs

WhenIs usuli satrni berilgan yopilishga uzatadi va agar berilgan satr berilgan andozaga mos kelsa, satrni qaytaradi.

go
import "github.com/goravel/framework/support/str"

str.Of("foo/bar").WhenIs("foo/*", func(s *str.String) *str.String {
    return s.Append("/baz")
}).String() // "foo/bar/baz"

WhenIsUlid

WhenIsUlid usuli satrni berilgan yopilishga uzatadi va agar berilgan satr ULID bo‘lsa, satrni qaytaradi.

go
import "github.com/goravel/framework/support/str"

str.Of("01E5Z6Z1Z6Z1Z6Z1Z6Z1Z6Z1Z6").WhenIsUlid(func(s *str.String) *str.String {
    return s.Substr(0, 10)
}).String() // "01E5Z6Z1Z6"

WhenIsUuid

WhenIsUuid usuli satrni berilgan yopilishga uzatadi va agar berilgan satr UUID bo‘lsa, satrni qaytaradi.

go
import "github.com/goravel/framework/support/str"

str.Of("550e8400-e29b-41d4-a716-446655440000").WhenIsUuid(func(s *str.String) *str.String {
    return s.Substr(0, 8)
}).String() // "550e8400"

WhenTest

WhenTest usuli satrni berilgan yopilishga uzatadi va agar berilgan satr berilgan muntazam ifodaga mos kelsa, satrni qaytaradi.

go
import "github.com/goravel/framework/support/str"

str.Of("goravel framework").WhenTest(`goravel(.*)`, func(s *str.String) *str.String {
    return s.Append(" is awesome")
}).String() // "goravel framework is awesome"

WordCount

WordCount usuli satrdagi so‘zlar sonini qaytaradi.

go
import "github.com/goravel/framework/support/str"

str.Of("Hello, World!").WordCount() // 2

Words

Words usuli satrdagi so‘zlar sonini cheklaydi. Agar kerak bo‘lsa, ikkinchi argument sifatida qisqartirishni ko‘rsatish uchun ishlatiladigan satrni o‘zgartirish mumkin.

go
import "github.com/goravel/framework/support/str"

str.Of("Hello, World!").Words(1) // "Hello..."

str.Of("Hello, World!").Words(1, " (****)") // "Hello (****)"

MIT litsenziyasi ostida chiqarilgan