Javascript JSON对象替换对象中的字符串

时间:2012-08-29 23:23:36

标签: javascript jquery regex string replace

好的,我有一个大的多维JSON对象被倒入我的应用程序,其中一个对象是一个html字符串,用于创建链接。现在我无法更改此Object的输出以替换我想要的东西,因为这个对象在几个不同的应用程序中用于几个地方。其中至今工作正常。

我需要做的是替换JSON对象中的一小部分html字符串来改变它,以便它符合这个新应用程序的需要。

对象中的HTML看起来像(直接从“响应选项卡”下的firebug控制台获取,而不是整个对象数据)

<a href='\/ng\/other\/?object_id=6bfb00fb-2b76'>Some Text<\/a>

我需要做的是将该字符串中的“ng”和“other”替换为其他内容。我试过了。

var swapVal1 = data.rows[index1].vals[1].replace(\/ng\/other\/,"/new/placement/");

但是我得到了SyntaxError:非法字符第31行,它指向第一部分替换函数。那么,我需要做什么,以便暂时正确处理这个问题,直到可以在后端重写其他内容作为此问题的更好替代方案。

1 个答案:

答案 0 :(得分:4)

你的正则表达式格式错误。试试这个:

var swapVal1 = data.rows[index1].vals[1].replace(/\\\/ng\\\/other\\\//, "/new/placement/");

正则表达式文字以/字符为界。反斜杠字符\用于转义正则表达式元字符,因此需要转义为\\。由于/字符用于表示正则表达式文字的开头和结尾,因此还需要将其转义为\/。所以你可以打破正则表达式:

/     -> start of regex
\\    -> the first \
\/    -> the next /
ng    -> the string "ng"
\\    -> the next \
\/    -> the / after that
other -> the string "other"
\\    -> the next \
\/    -> the / after that
/     -> end of the regex