Saya mencari fungsi php yang akan mengambil string input dan mengembalikan versi bersihnya dengan menghapus semua karakter khusus yang hanya menyisakan alfa-numerik.
Saya membutuhkan fungsi kedua yang melakukan hal yang sama tetapi hanya mengembalikan karakter alfabet AZ.
Setiap bantuan sangat dihargai.
unichars '\p{Latin}' '\p{Alphabetic}' '[^A-Za-z]' | wc -l
== 1192 poin kode yang merupakan alfabet Latin tetapi bukan AZ. Ada anggapan umum bahwa ASCII cukup untuk bahasa Inggris. Tidak, dan itulah mengapa menulis AZ memiliki bau kode untuk itu.Jawaban:
Peringatan: Perhatikan bahwa bahasa Inggris tidak terbatas hanya untuk AZ.
Coba ini untuk menghapus semuanya kecuali az, AZ dan 0-9:
Jika definisi alfanumerik Anda menyertakan huruf dalam bahasa asing dan skrip usang, maka Anda perlu menggunakan kelas karakter Unicode.
Coba ini untuk menyisakan hanya AZ:
Alasan peringatan ini adalah karena kata-kata seperti resume berisi surat
é
yang tidak akan cocok dengan ini. Jika Anda ingin mencocokkan daftar huruf tertentu, sesuaikan ekspresi reguler untuk menyertakan huruf tersebut. Jika Anda ingin mencocokkan semua huruf, gunakan kelas karakter yang sesuai seperti yang disebutkan di komentar.sumber
[\p{Alphabetic}\p{Numeric}]
. Saya lupa properti abjad PCRE, tetapi Anda dapat memperkirakannya dengan[\pL\pM\pN]
.[A-Z]
ini, terkadang selalu salah .i
tapi saya hanya perlu khawatir tentang demografi Inggris .. Saya lupa banyak orang harus memikirkan bahasa lain. BTW Saya baru tahu Anda adalah pengguna dengan reputasi tertinggi yang tidak pernah mengajukan 1 pertanyaan. Bahkan Jon Skeet pernah mengajukan pertanyaan sebelumnya!Daripada
preg_replace
, Anda selalu bisa menggunakan fungsi filter PHP menggunakanfilter_var()
fungsi withFILTER_SANITIZE_STRING
.sumber
FILTER_SANITIZE_STRING
? Sepengetahuan saya, yang paling dekat yang bisa dicapai dengan cara ini adalah denganFILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH
, tapi itu tidak hanya menyisakan huruf dan angka tapi juga titik, garis miring, persen dan itu semua.sumber