On 24-Oct-2000, Fadjar Nurswanto wrote:
> >Semuanya di atas bisa dicapture dengan satu baris regex:
> >if(preg_match("^.+@([\w\d]+\.?)+\.\w\w+$", $email))
>
> Bisakah anda menjelaskan sedikit kepada saya. Baik via japri atau di forum
> ini (agar anggota yang laen bisa bertambah melek juga).
Sure.
/^ # Awal string
.+ # Any character, muncul 1 kali atau lebih
@ # @
([\w\d]+ # Alphanumeric, muncul 1 kali atau lebih
\.? # Titik, muncul 1 kali atau tidak sama
# sekali
)+ # Semua dalam kurung muncul satu kali
# atau lebih
\. # Titik
\w\w+ # Alphanumeric, minimal 2 huruf
$/ # Akhir string
Kalo di PCRE [A-Za-z0-9] bisa disingkat \w, jadi sebetulnya resep saya
di atas itu redundant kalo saya pake \w\d, cukup \w aja. Lalu ganti
"\w\w+" dengan "[A-Za-z]{2,}", artinya alpha minimal 2 huruf, atau
"[A-Za-z]{2,3}" utk 2 atau 3 huruf saja. Dan satu lagi yg saya lupa
itu utk pcre harus pake delimiter, makanya saya tambahin "/" di awal
dan di akhir. Jadi mestinya gini:
if(preg_match("/^.+@(\w+\.?)+\.[A-Za-z]{2,3}$/", $email))
Seperti sudah saya bilang sebelumnya, kalo mau nitpick sih resep saya
di atas masih banyak ruang utk improvements, tapi sekali lagi
semuanya tergantung kebutuhan. Buat bbrp org mungkin yg di atas itu
udah cukup, buat org lain mungkin nggak bisa dipake langsung.
Reference lengkapnya baca manual regex yg bersangkutan (PCRE atau
POSIX). Utk posix misalnya, di unix bisa baca man page regex(7),
misalnya 'man 7 regex' di linux. Kalo mau lebih detail lagi baca buku
Mastering Regular Expression.
Ciao,
Ronny
PS. tolong gunakan fungsi "reply" yg normal dr mailer anda supaya
tidak ngerusak threading milis, terutama utk arsip.
>>>>> 2.5 Mbps InternetShop >> InternetZone << Margonda Raya 340 <<<<<
Berhenti langganan kirim email ke [EMAIL PROTECTED]
Arsip di http://www.mail-archive.com/[email protected]/