在.replacement()方法中使用regex



我使用javascript中的.replace()方法将序列化的对象数组转换为更简单的序列化字符串。这是我的代码:

b = //string
b = b.replace(/},{/gi, "},cb,,{");
b = b.replace(/}],[{/gi, "},cb,,row,{"); //The error is being thrown for this line

当我运行此代码时,第三行出现"Unexpected Token/"错误。为什么会这样?这条线和上面的线差不多。请帮我弄清楚。

注意:我不能在没有regex作为参数的情况下提交字符串,因为我需要多次替换子字符串。

在此上下文中,开头的[是一个特殊字符,表示字符类。由于之后没有出现],因此会发生错误。

您只需要转义[,正则表达式就可以工作:

b = b.replace(/}],[{/gi, "},cb,,row,{");

为了保持一致性,我会毫不犹豫地转义其他大括号字符,因为它们也是特殊字符(但碰巧在本文中是从字面上解析的):

b = b.replace(/}],[{/gi, "},cb,,row,{");

最新更新