Saya mencoba mengganti semua tanda titik di email dengan karakter x - misalnya "[email protected]" akan menjadi "myxemail@emailxcom". Email diatur menjadi string.
Masalah saya adalah itu tidak hanya mengganti tanda titik saja, tetapi juga mengganti setiap karakter, jadi saya hanya mendapatkan serangkaian x'.
Saya bisa membuatnya bekerja hanya dengan satu titik penuh, jadi saya berasumsi saya salah pada bagian contoh global. Ini kode saya:
let re = ".";
let new = email.replace(/re/gi, "x");
Saya juga sudah mencoba
re = /./gi;
new = email.replace(re, "x");
Jika ada yang bisa memberikan penjelasan, saya akan sangat menghargainya, saya sudah lama terjebak dalam hal ini dan tidak tahu di mana letak kesalahanku.
** Suntingan: Ups, variabel baru saya sebenarnya disebut newemail, kata kunci new tidak menyebabkan masalah!
Contoh kedua Anda adalah yang paling mendekati. Masalah pertama adalah nama variabel Anda, new
, yang kebetulan merupakan salah satu [reserved keywords] JavaScript (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#Keywords) (dan sebaliknya digunakan untuk membangun objek, seperti new RegExp
atau new Set
). Ini berarti bahwa program Anda akan melempar Kesalahan Sintaksis.
Juga, karena titik (.
) adalah karakter khusus di dalam grammar regex, Anda harus melarikannya sebagai \.
. Jika tidak, anda akan berakhir dengan hasil == "xxxxxxxxxxxxxxxxxxxxxx"
, yang tidak diinginkan.
let email = "[email protected]"
let re = /\./gi;
let result = email.replace(re, "x");
console.log(result)
Anda dapat mencoba metode split()
dan join()
yang bekerja untuk saya. (Untuk teks string normal)
Metode ini singkat dan mudah diimplementasikan dan dipahami.
Di bawah ini adalah contohnya.
let email = "[email protected]";
email.split('.').join('x');
Jadi, ia akan mengganti semua .
Anda dengan x
. Jadi, setelah contoh di atas, variabel email
menjadi myxemail@gmailxcom