nhconch [Karya asli]
Teman-teman yang pernah menggunakan PHP tahu bahwa penggunaan variabel dalam PHP itu fleksibel dan nyaman, terutama konversi nama-nilai variabel dalam string dapat dengan mudah direalisasikan, membuat keseluruhan kode PHP lebih ringkas dan indah. Misalnya, pernyataan SQL untuk memperbarui database hanya perlu ditulis: "perbarui pengguna set kata sandi='$kata sandi', grup=$grup, nama='$nama pengguna' di mana akun='$akun'", di mana $kata sandi , $group, $username dan $account akan diganti dengan nilai variabel sebenarnya untuk mencapai fungsi yang sama di ASP, Anda harus menulis: "update users set password='" & password & "',group=" & group &. ",nama= '" & nama pengguna & "' di mana akun='" & akun & "'", yang terlihat bertele-tele dan jelek. Jika ini adalah bahasa penyisipan dan ada banyak bidang yang disisipkan, memeriksa korespondensi antara bidang dan nilai akan menjadi proses yang sulit.
Sekarang mari kita lihat bagaimana menerapkan transformasi nama-nilai variabel serupa di ASP.
Idenya
adalah pertama-tama harus ada cara untuk membedakan nama variabel yang perlu diganti dengan nilai sebenarnya dari teks biasa, kemudian mengganti semua nama variabel yang ditemukan dengan nilai sebenarnya yang diwakilinya.
Poin pertama dapat ditemukan melalui ekspresi reguler. Di sini kita tidak menggunakan representasi variabel PHP, tetapi menggunakan angka besar {} sebagai karakter batas dari nama variabel. Representasi string menjadi password='{password}',group ={ kelompok}.
Poin kedua adalah kunci konversi nama-nilai variabel. Nilai variabel diperoleh melalui nama variabel. Melihat informasi ASP, kami tidak menemukan metode implementasi langsung, tetapi ada fungsi Execute yang menarik perhatian kami. Dari uraian informasi tersebut, kami mengetahui bahwa Execute dapat mengeksekusi string valid yang masuk sebagai sinkronisasi eksekusi kode , kita hanya perlu menulis fungsi kecil untuk mencapai instruksi tujuan kita. Kode intinya adalah:
fungsi GetVar(var_name)
Jalankan("fungsi get_value(): get_value=" & var_name & ": fungsi akhir")
getvar=get_value()
implementasi
fungsi akhir
:
fungsi GetVar(var_name)
Jalankan("fungsi get_value(): get_value=" & var_name & ": fungsi akhir")
getvar=get_value()
fungsi akhir
fungsi Txt2Value(str, level)
redupkan regEx, Kecocokan, Hasil
Setel regEx = RegExp baru
pilih tingkat kasus
case 0 regEx.Pattern = "{(w+)}" 'Nama variabel valid
case 1 regEx.Pattern = "{([w+-*/\<>=]+)}" 'Nama variabel dan operator valid
'case 2 regEx.Pattern = "{([ws]+)}" 'Semua karakter kecuali karakter baris baru valid
fungsi keluar kasus lain
akhir pilih
'regEx.Pattern = "{(w+)}"
regEx.IgnoreCase = benar
regEx.Global = benar
Setel Kecocokan = regEx.Execute(str)
Hasil = str
'respons.tulis Kecocokan.Hitungan
Untuk Setiap Pertandingan Dalam Pertandingan
Hasil = Ganti(Hasil, Match.Value, GetVar(Match.SubMatches(0)))
Berikutnya
set Cocok = tidak ada
atur regEx = tidak ada
Txt2Value = Hasil
fungsi akhir
fungsi Var2Value(var_name)
Var2Value = Txt2Value(var_name, 0)
akhir
Metode pemanggilan fungsi:
Var2Value("perbarui pengguna yang menyetel kata sandi='{kata sandi}', grup={grup}, nama='{nama pengguna}' di mana akun='{akun}'"
Var2Value memanggil Txt2Value. Txt2Value menemukan semua nama variabel dan memanggil GetVar untuk mendapatkan nilai variabel dan menggantinya. Faktanya, memanggil Txt2Value(str,1) secara langsung juga memungkinkan empat operasi aritmatika pada nilai string.