我使用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,{");