0

好的,我将一个大型多维 JSON 对象倒入我的应用程序中,其中一个对象是 html 字符串,用于创建链接。现在我无法更改此对象的输出以将我想要的内容替换为我需要的内容,因为这个对象在几个不同的应用程序中被用于几个地方。到目前为止,其中工作正常。

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

对象内的 HTML 看起来像(直接取自“响应选项卡”下的萤火虫控制台,减去整个对象数据)

<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 行及其指向替换函数的第一部分。那么,为了暂时正确处理这个问题,我需要做什么,直到可以在后端重写其他东西作为这个问题的更好替代方案。

4

1 回答 1

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
于 2012-08-29T23:26:02.490 回答