Saya ingin menghapus semua karakter khusus kecuali spasi dari string menggunakan JavaScript.
Misalnya,
abc's test#s
harus menampilkan sebagai
abcs tests
.
Saya ingin menghapus semua karakter khusus kecuali spasi dari string menggunakan JavaScript.
Misalnya,
abc's test#s
harus menampilkan sebagai
abcs tests
.
Jawaban:
Anda harus menggunakan fungsi ganti string, dengan satu regex. Dengan asumsi karakter khusus, Anda berarti apa pun yang bukan huruf, berikut ini solusinya:
sumber
str.replace(/[^a-zA-Z0-9]/g, "")
str.replace(/[^a-zA-Z0-9 ]/g, "");
pemberitahuan ini ada ruang antara 0-9 dan]Anda dapat melakukannya dengan menentukan karakter yang ingin Anda hapus:
Atau, untuk mengubah semua karakter kecuali angka dan huruf, coba:
sumber
/[^a-zA-Z0-9]/g
()
danwhitespaces
dalam string.text().replace(/[ ()]/g, '')
Solusi pertama tidak berfungsi untuk alfabet UTF-8. (Ini akan memotong teks seperti Привіт). Saya telah berhasil membuat fungsi yang tidak menggunakan RegExp dan menggunakan dukungan UTF-8 yang baik di mesin JavaScript. Idenya sederhana jika simbol sama dalam huruf besar dan kecil itu adalah karakter khusus. Satu-satunya pengecualian dibuat untuk spasi putih.
Pembaruan: Harap dicatat, bahwa solusi ini hanya berfungsi untuk bahasa di mana ada huruf kecil dan besar. Dalam bahasa seperti Cina, ini tidak akan berhasil.
Pembaruan 2: Saya menemukan solusi asli ketika saya sedang mengerjakan pencarian fuzzy. Jika Anda juga mencoba untuk menghapus karakter khusus untuk mengimplementasikan fungsi pencarian, ada pendekatan yang lebih baik. Gunakan pustaka transliterasi yang akan menghasilkan Anda hanya string dari karakter Latin dan kemudian Regexp sederhana akan melakukan semua keajaiban menghapus karakter khusus. (Ini akan bekerja untuk orang Cina juga dan Anda juga akan menerima manfaat sampingan dengan membuat
Tromsø
==Tromso
).sumber
Saya tidak tahu JavaScript, tetapi tidak bisakah menggunakan regex?
Sesuatu seperti
[^\w\d\s]
akan cocok dengan apa pun kecuali digit, karakter, dan spasi putih. Itu hanya akan menjadi pertanyaan untuk menemukan sintaks dalam JavaScript.sumber
Saya mencoba solusi Seagul yang sangat kreatif, tetapi ternyata itu memperlakukan angka juga sebagai karakter khusus, yang tidak sesuai dengan kebutuhan saya. Jadi di sini adalah tweak saya (gagal aman) dari solusi Seagul ...
sumber
reg
dalam fungsi pertama Anda.cari semua yang tidak (karakter kata || spasi):
sumber
Coba gunakan yang ini
di sini ^ carat adalah untuk negasi \ w untuk [a-zA-Z0-9_] karakter kata dan \ s untuk spasi / [] / gi untuk global
sumber
dot (.) tidak dapat dianggap spesial. Saya telah menambahkan syarat ATAU untuk jawaban Mozfet & Seagull:
sumber
sumber
Karakter khusus yang ingin Anda hapus dari string, siapkan daftar mereka dan kemudian fungsi ganti pengguna javascript untuk menghapus semua karakter khusus.
atau Anda dapat menjalankan loop untuk seluruh string dan membandingkan satu karakter dengan kode ASCII dan membuat ulang string baru.
sumber