1

我有这个字符串:

var value = recordsArray_f006b490[]=1&recordsArray_9715b841[]=1&recordsArray_afb085e2[]=1&recordsArray_fc542e23[]=1&recordsArray_19490084[]=1&recordsArray_615a5055[]=1&recordsArray_32841aa6[]=1&recordsArray_a02a35c7[]=1&recordsArray_d32b5b88[]=1&recordsArray_d32d5339[]=1&recordsArray_56c2b8e10[]=1&recordsArray_8ce9f4211[]=1&recordsArray_5a87afc12[]=1&recordsArray_2b13c0113[]=1&recordsArray_afb085e14[]=1&recordsArray_51db9f216[]=1&recordsArray_2a7470415[]=1&recordsArray_d51057a17[]=1&recordsArray_b274ee918[]=1&recordsArray_d0812dd19[]=1&recordsArray_b1ede8920[]=1&recordsArray_9d76ae821[]=1&recordsArray_0ae779d22[]=1&recordsArray_871777923[]=1&recordsArray_9e22c9f24[]=220236&recordsArray_787c57e25[]=220236&recordsArray_499e25726[]=1&recordsArray_a0600da27[]=220236&recordsArray_9ef1fca28[]=220236&recordsArray_67eee1929[]=220236&recordsArray_24c3a0b30[]=220236&recordsArray_5d2090831[]=220236

我想用“_”替换“[]=”,我有下一个javascript代码:

var regex = new RegExp("[]=", "g");
alert(value.replace(regex, "_"));

但它并没有改变任何东西,我该怎么做?谢谢!

4

5 回答 5

4

转义第一个[以表明它没有定义字符类

 var regex = new RegExp("\\[]=", "g");
于 2012-10-10T15:44:58.227 回答
2

方括号在正则表达式中保留。您需要转义它们以进行匹配

var regex = new RegExp("\\[\\]=", "g");
于 2012-10-10T15:44:10.247 回答
2

转义括号,因为它们具有特殊含义。

var regex = new RegExp("\\[\\]=", "g");
于 2012-10-10T15:44:24.677 回答
2

正如其他人所指出的,您需要转义方括号,因为它们在正则表达式中具有特殊含义。我还想指出,最清晰、最简洁的方法是使用 JavaScript 的正则表达式文字符号:

 var regex = /\[]=/g;

您还只需要转义左[括号。右括号(]字符)仅在字符类内部具有特殊含义,就像在字符类[之外仅具有特殊含义一样。

于 2012-10-10T15:48:38.683 回答
0

您不能在正则表达式中包含括号。用于\\[此。

于 2012-10-10T15:45:41.620 回答