All Products
Search
Document Center

Server Load Balancer:Fungsi string

Last Updated:Jun 27, 2025

Topik ini menjelaskan sintaks, fitur, parameter, dan nilai kembali dari fungsi string. Topik ini juga menyertakan contoh penggunaan fungsi-fungsi tersebut.

substr | concat | format | upper | lower | len | byte | match_re | capture_re | gsub_re | split | split_as_key | tohex | tobin | tostring | tochar | reverse | find | trim

substr

Item

Deskripsi

Sintaks

substr(s, i, j)

Deskripsi

Mengekstrak substring dari sebuah string.

Parameter

  • s: string dari mana Anda ingin mengekstrak substring.

  • i: posisi di mana ekstraksi dimulai, dihitung dari 1. Nilai -1 menentukan karakter paling kanan dari string. Tipe data: integer.

  • j: posisi di mana ekstraksi berakhir, dihitung dari 1. Nilai -1 menentukan karakter paling kanan dari string. Tipe data: integer.

Nilai kembali

Substring s[i, j] yang diekstrak dari string sumber yang ditentukan oleh s dikembalikan.

Contoh

Anda dapat menggunakan metode berikut untuk menentukan apakah file adalah file M3U8:

  • Metode 1:

    if eq(substr($uri, -5, -1), '.m3u8') {
        say(concat($uri, ' is .m3u8'))
    }
  • Metode 2:

    uri_len = len($uri)
    if eq(substr($uri, -5, uri_len), '.m3u8') {
        say(concat($uri, ' is .m3u8'))
    }

concat

Item

Deskripsi

Sintaks

concat(s1, ...)

Deskripsi

Menggabungkan string.

Parameter

String yang ingin Anda gabungkan. Anda dapat menentukan satu atau lebih string. Nilai numerik didukung.

Nilai kembali

Sebuah string yang digabungkan.

Contoh

Anda dapat menggunakan metode berikut untuk menentukan apakah file adalah file M3U8:

  • Metode 1:

    if eq(substr($uri, -5, -1), '.m3u8') {
        say(concat($uri, ' is .m3u8'))
    }
  • Metode 2:

    uri_len = len($uri)
    if eq(substr($uri, -5, uri_len), '.m3u8') {
        say(concat($uri, ' is .m3u8'))
    }

format

Item

Deskripsi

Sintaks

format(fmt, ···)

Deskripsi

Memformat nilai satu atau lebih parameter. String format adalah parameter pertama, yang harus menentukan string. String format mengikuti spesifikasi parameter sprintf yang digunakan oleh fungsi dalam bahasa pemrograman ISO C.

Sintaks string format yang ditentukan oleh fmt adalah %[parameter][flag][field width][precision]specifier.

%%: mencetak tanda persen literal (%). 
%c: mengonversi bilangan bulat menjadi karakter ASCII. 
%d: mengonversi bilangan bulat menjadi angka desimal. 
%f: bilangan titik mengambang. 
%o: mengonversi bilangan bulat menjadi angka oktal. 
%s: memformat sebagai string. 
%x: mengonversi bilangan bulat menjadi angka heksadesimal dengan huruf kecil. 
%X: mengonversi bilangan bulat menjadi angka heksadesimal dengan huruf besar.

Parameter

  • fmt: tipe string. Parameter ini menentukan string format.

  • Jumlah variabel parameter: tipe apa pun.

Nilai kembali

Sebuah string.

Contoh

say(concat('format:', format('%%%s$%.2s$%s$%c$%d$%2.2f$%.2o$%x$%X', 'format', 3.1415926, true, 95, 3.1415926, 3.1415926, 3.1415926, 10, 10)))

Keluaran:

format:%format$3.$true$_$3$3.14$03$a$A

upper

Item

Deskripsi

Sintaks

upper(s)

Deskripsi

Mengonversi string menjadi huruf besar.

Parameter

s: string yang ingin Anda konversi.

Nilai kembali

String yang ditentukan oleh parameter s dalam huruf besar.

Contoh

mystr = 'Hello, AScript'
say(upper(mystr))

Keluaran:

HELLO, ASCRIPT

lower

Item

Deskripsi

Sintaks

lower(s)

Deskripsi

Mengonversi string menjadi huruf kecil.

Parameter

s: string yang ingin Anda konversi.

Nilai kembali

String yang ditentukan oleh parameter s dalam huruf kecil.

Contoh

mystr = 'Hello, AScript'
say(lower(mystr))

Keluaran:

hello, ascript

len

Item

Deskripsi

Sintaks

len(s)

Deskripsi

Menanyakan panjang string.

Parameter

s: string yang ingin Anda tanyakan.

Nilai kembali

Panjang string yang ditentukan oleh parameter s. Tipe data: integer.

Contoh

say(len('hello'))

Keluaran:

5

byte

Item

Deskripsi

Sintaks

byte(c)

Deskripsi

Menanyakan nilai ASCII dari sebuah karakter.

Parameter

c: karakter yang ingin Anda tanyakan nilai ASCII-nya. Anda hanya dapat menentukan satu karakter.

Nilai kembali

Nilai ASCII dari karakter yang ditentukan. Tipe data: numerik.

Contoh

say(byte('a'))
say(byte('A'))

Keluaran:

97
65

match_re

Item

Deskripsi

Sintaks

match_re(s, p, [o])

Deskripsi

Menggunakan mesin ekspresi reguler Perl Compatible Regular Expressions (PCRE) untuk pencocokan ekspresi reguler. Untuk informasi lebih lanjut, lihat Sintaks PCRE.

Parameter

  • s: string yang ingin Anda cocokkan. Tipe data: string.

  • p: ekspresi reguler untuk pencocokan. Tipe data: string.

  • o: mesin ekspresi reguler. Tipe data: string. Parameter ini opsional.

Nilai kembali

Jika string cocok dengan ekspresi reguler, true dikembalikan. Jika tidak, false dikembalikan.

Contoh

url = concat('http://', $host, $uri)
m1 = match_re(url, 'http://.*\.dslex\.com/.*')
m2 = match_re(url, '^http://.*\.alibaba\.com\.cn/.*\.d\.html(\?.*)?$')
m3 = match_re(url, '^http://.*.test.dslex.com/.*\.d\.html(\?.*)?$')
m4 = match_re(url, '^http://.*\.alibaba\.com\.cn/zt_d/')
m5 = match_re(url, '^http://tech.alibaba.com.cn/zt_d/we2015/?$')
m6 = match_re($args, 'from=wap1$')
m7 = match_re($args, 'from=comos1$')

if and(m1, or(m2, m3), not(m4), not(m5), or(not(m6), not(m7))) {
    add_rsp_header('USER-DEFINED-1', 'hit1')
    add_rsp_header('USER-DEFINED-2', 'hit2')
}                                                                                                                                                        

capture_re

Item

Deskripsi

Sintaks

capture_re(s, p, [init])

Deskripsi

Menangkap kecocokan dari sebuah string dan mengembalikan substring yang cocok. Untuk informasi lebih lanjut tentang PCRE, lihat Sintaks PCRE.

Parameter

  • s: string yang ingin Anda cocokkan. Tipe data: string.

  • p: ekspresi reguler untuk pencocokan. Tipe data: string.

  • init: posisi untuk memulai pencocokan, dihitung dari 1. Tipe data: integer.

Nilai kembali

Jika string cocok dengan ekspresi reguler, substring yang cocok dalam tipe kamus dikembalikan. Jika tidak, kamus kosong dikembalikan.

Contoh

pcs = capture_re($request_uri,'^/([^/]+)/([^/]+)([^?]+)\?(.*)')
sec1 = get(pcs, 1)
sec2 = get(pcs, 2)
sec3 = get(pcs, 3)
if or(not(sec1), not(sec2), not(sec3)) {
   add_rsp_header('X-TENGINE-ERROR', 'auth failed - missing necessary uri set')
   exit(403)
}
digest = md5(concat(sec1, sec3))
if ne(digest, sec2) {
    add_rsp_header('X-TENGINE-ERROR', 'auth failed - invalid digest')
    exit(403)
}                                                                                                                                              

gsub_re

Item

Deskripsi

Sintaks

gsub_re(subject, regex, replace, [option])

Deskripsi

Mengganti semua kecocokan dari sebuah string dan mengembalikan string setelah penggantian. Untuk informasi lebih lanjut tentang PCRE, lihat Sintaks PCRE.

Parameter

  • subject: string yang ingin Anda cocokkan. Tipe data: string.

  • regex: ekspresi reguler. Tipe data: string.

  • replace: string untuk penggantian. Tipe data: string.

    Anda dapat menentukan parameter replace menggunakan substring yang cocok.

    • $0: menentukan semua substring yang cocok dengan regex.

    • $N: menentukan substring yang cocok dengan subekspresi berkurung ke-N () dari regex.

  • option: mesin ekspresi reguler. Tipe data: string. Parameter ini opsional.

Nilai kembali

Fungsi ini mengganti semua substring yang cocok dengan parameter regex yang ditentukan dalam parameter subject dengan yang ditentukan oleh parameter replace dan mengembalikan string setelah penggantian.

Contoh

subject = 'Hello, Es'
regex = '([a-zA-Z])[a-z]+'
replace = '[$0,$1]'
add_rsp_header('X-DEBUG-GSUB-RE', gsub_re(subject, regex, replace))                                                                                                                         

Keluaran:

X-DEBUG-GSUB-RE: [Hello,H], [Es,E] 

split

Item

Deskripsi

Sintaks

split(s, [sep])

Deskripsi

Memisahkan string menjadi array substring dan mengembalikan array tersebut.

Parameter

  • s: string yang ingin Anda pisahkan. Tipe data: string.

  • sep: pemisah yang digunakan untuk memisahkan string. Tipe data: string.

Nilai kembali

Array pasangan kunci-nilai dalam tipe kamus. Nilai parameter key adalah angka yang dimulai dari 1, misalnya, [1]=xx, [2]=yy. Jika sep dibiarkan kosong, string dipisahkan oleh karakter spasi putih. Karakter spasi putih termasuk karakter spasi dan karakter tab (\t).

Contoh

if $arg_from {
    t = split($arg_from, ',')
    #Fungsi get() mengambil nilai pertama dalam kamus t.
    if get(t, 1) {
        say(concat('[1]=', get(t, 1)))
    }
    #Fungsi get() mengambil nilai kedua dalam kamus t.
    if get(t, 2) {
        say(concat('[2]=', get(t, 2)))
    }
    #Fungsi get() mengambil nilai ketiga dalam kamus t.
    if get(t, 3) {
        say(concat('[3]=', get(t, 3)))
    }
}                                                                                                                                 

Permintaan:

?from=xx1,xx2,xx3

Respon:

[1]=xx1
[2]=xx2
[3]=xx3

split_as_key

Item

Deskripsi

Sintaks

split_as_key(s, [sep])

Deskripsi

Memisahkan string menjadi array substring dan mengembalikan array tersebut.

Parameter

  • s: string yang ingin Anda pisahkan. Tipe data: string.

  • sep: pemisah yang digunakan untuk memisahkan string. Tipe data: string.

Nilai kembali

Parameter respons dikembalikan dengan cara yang sama seperti fungsi split(). Namun, parameter key dinamai setelah setiap elemen terpisah: Elemen 1 -> Elemen 2.

Contoh

def echo_each(k, v, u) {
    #Fungsi get mengambil nilai yang sesuai dengan kunci tertentu dalam kamus.
    s = concat(k, '=', v, ' u=', get(u, 1))
    say(s)
}
if $arg_from {
    t = split_as_key($arg_from, ',')
    #Fungsi foreach melintasi elemen-elemen dalam kamus.
    foreach(t, echo_each, ['hi,ascript'])
}                                                                                                                             

Permintaan:

?from=xx1,xx2,xx3

Respon:

xx2=xx2 u=hi,ascript
xx1=xx1 u=hi,ascript
xx3=xx3 u=hi,ascript

tohex

Item

Deskripsi

Sintaks

tohex(s)

Deskripsi

Mengonversi string menjadi string heksadesimal.

Parameter

s: string yang ingin Anda konversi.

Nilai kembali

String heksadesimal yang dikonversi dari string yang ditentukan oleh parameter s.

Contoh

digest = 'xxxx'
add_rsp_header('X-AScript-TOHEX', tohex(digest))                                                                                                                            

Keluaran:

X-AScript-TOHEX: 78787878

tobin

Item

Deskripsi

Sintaks

tobin(str)

Deskripsi

Mengonversi string heksadesimal menjadi string ASCII.

Parameter

str: string digit heksadesimal, yang tidak peka huruf besar atau kecil.

Nilai kembali

Sebuah string.

Contoh

say(concat('tobin:', tobin('2F2F')))                                                                                                                              

Keluaran:

tobin://

tostring

Item

Deskripsi

Sintaks

tostring(a)

Deskripsi

Mengonversi data dari tipe apa pun menjadi string.

Parameter

a: data yang ingin Anda konversi. Tipe data: tipe apa pun.

Nilai kembali

String yang dikonversi dari nilai yang ditentukan oleh parameter a.

Contoh

s = tostring(123)
add_rsp_header('X-DSL-TOSTRING', s)                                                                                                                      

Keluaran:

X-DSL-TOSTRING: 123

tochar

Item

Deskripsi

Sintaks

tochar(n1, n2, ...)

Deskripsi

  • Mengonversi satu atau lebih bilangan bulat internal menjadi string. Sebagai contoh, 48 sesuai dengan karakter "0".

  • Panjang string yang dikembalikan adalah total panjang semua parameter setelah konversi.

Parameter

nX: bilangan bulat yang ingin Anda konversi. Anda dapat menentukan satu atau lebih bilangan bulat.

Nilai kembali

String yang dikonversi dari bilangan bulat.

Contoh

say(tochar(97))
say(tochar(97,98))                                                                                                                          

Keluaran:

a
ab 

reverse

Item

Deskripsi

Sintaks

reverse(str)

Deskripsi

Membalikkan sebuah string.

Parameter

str: string yang ingin Anda balikkan.

Nilai kembali

String yang dibalik dari string yang ditentukan. Tipe data: CHAR.

Contoh

say(reverse('hello'))

Keluaran:

olleh

find

Item

Deskripsi

Sintaks

string.find (s, substr, [pos])

Deskripsi

Mencari substring dalam string tertentu.

Parameter

  • s: string yang ingin Anda cari.

  • substr: substring yang ingin Anda cari.

  • pos: posisi di mana pencarian dimulai. Tipe data: numerik. Parameter ini opsional. Anda dapat menentukan bilangan bulat negatif. Nilai defaultnya adalah 1.

Nilai kembali

  • Sebuah array dikembalikan jika substring yang ditentukan ditemukan.

    • Indeks 1 menunjukkan posisi di mana pencarian dimulai.

    • Indeks 2 menunjukkan posisi di mana pencarian berakhir.

  • Array kosong dikembalikan jika substring yang ditentukan tidak ditemukan.

Contoh

 str = 'hello dsl'
 #Fungsi add_rsp_header menambahkan header string-find()-start ke nilai. Fungsi tostring mengonversi nilai menjadi string. Keluaran yang diharapkan adalah 7.
 add_rsp_header('string-find()-start', tostring(get(find(str, 'dsl'), 1)))
 str = 'hello dsl 12'
 #Fungsi add_rsp_header menambahkan header string-find()-end ke nilai. Fungsi tostring mengonversi nilai menjadi string. Keluaran yang diharapkan adalah 9.
 add_rsp_header('string-find()-end', tostring(get(find(str, 'dsl'), 2)))
 str = 'hello dsl'
 #Fungsi add_rsp_header menambahkan header string-find()-tail-start ke nilai. Fungsi tostring mengonversi nilai menjadi string. Keluaran yang diharapkan adalah 7.
 add_rsp_header('string-find()-tail-start', tostring(get(find(str, 'dsl', -6), 1)))
 str = 'hello dsl 12'
 #Fungsi add_rsp_header menambahkan header string-find()-tail-start ke nilai. Fungsi tostring mengonversi nilai menjadi string. Keluaran yang diharapkan adalah 9.
 add_rsp_header('string-find()-tail-end', tostring(get(find(str, 'dsl', -6), 2)))

Keluaran:

string-find()-start:7
string-find()-end:9
string-find()-tail-start:7
string-find()-tail-end:9

trim

Item

Deskripsi

Sintaks

trim(s, [loc])

Deskripsi

Menghapus semua karakter spasi putih di awal atau akhir string yang ditentukan oleh parameter s, dan mengembalikan string dengan karakter spasi putih yang ditentukan dihapus.

Parameter

  • s: string.

  • loc: Parameter ini opsional. Nilai default: both. Nilai valid:

    • both: menghapus karakter spasi putih sebelum dan sesudah string.

    • left: hanya menghapus karakter spasi putih sebelum string.

    • right: hanya menghapus karakter spasi putih setelah string.

Nilai kembali

String dengan karakter spasi putih yang ditentukan dihapus.

Contoh

say(concat('trim():', trim(' abcd ')))
say(concat('trim(left):', trim(' abcd ', 'left')))
say(concat('trim(right):', trim(' abcd ', 'right')))

Keluaran:

trim():abcd
trim(left):abcd
trim(right): abcd