Pertanyaan bagaimana cara mengganti '[[' dengan '$ {' dalam javascript


Saya mencoba untuk mengganti [[ dengan ${.

var str = "it is [[test example [[testing";
var res = str.replace(/[[[]/g, "${");

Saya mendapatkan hasilnya "it is ${${test example ${${testing" tapi saya ingin hasilnya "it is ${test example ${testing".


5
2017-08-26 11:19


asal


Jawaban:


Regex Anda salah.

[[[]

akan cocok satu atau dua  [ dan ganti satu [ oleh ${.

Lihat Demo ekspresi reguler yang salah.

[ adalah simbol khusus dalam Ekspresi Reguler. Jadi, untuk mencocokkan secara harfiah [, kamu harus melarikan diri [ di regex dengan mendahuluinya \. Tanpa itu [ diperlakukan sebagai kelas karakter.

var str = "it is [[test example [[testing";
var res = str.replace(/\[\[/g, "${");
//                     ^^^^

document.write(res);


5
2017-08-26 11:22



Anda ingin keluar dari [menggunakan \

var res = str.replace(/\[\[/g, "${");

4
2017-08-26 11:21



Hanya masalah dengan karakter pelarian. menggunakan \ sebelum [.

var str = "it is [[test example [[testing";
var res = str.replace(/\[\[/g, "${");

2
2017-08-26 11:23



Jika Anda tidak ingin menggunakannya regex

var res = str.split('[[').join('${');

Sampel di sini:

var str = "it is [[test example [[testing";
var res = str.split('[[').join('${');

document.write(res);


2
2017-08-26 11:35