0

我有以下 javascript 行:

YAHOO.lang.JSON.parse(txt)

其中 text 是从数据库中提取的字符串。这是我要返回的问题字符串之一的示例:

5000\25\30%

据我所知,JSON 解析器在 / 字符上抛出语法错误。我查看了这里的线程,他们中的大多数人都说将其更改为“//”,但我正在从数据库中提取数百个值,因此我无法更改它们的来源。我试图让它用空字符串替换'/'字符,因为我实际上不必显示'/',但我遇到了困难。我当前的替换代码如下所示:

if(substr.indexOf("\\") > 0){

  substr.replace(/\\/g , "");

 }

但什么都没有发生。有时“indexOf”检查会失败,所以我尝试在每个字符串上运行替换,但它仍然没有替换任何 '\' 字符。所以这是我的问题:如果我返回一个包含一个或多个“\”字符的字符串,并且需要使用 javascript 为 JSON 解析器删除它们,我该怎么做;或者如何让 JSON 解析器在不更改源字符串的情况下接受 '\' 字符。

编辑:我认为可能的问题是 "\2" 和所有其他的都在评估和排除不做任何事情的字符。这些字符总是被转义,所以它们不能被替换。这甚至可以修复错误吗?

4

1 回答 1

0

我能够弄清楚这一点。它所做的是更改从数据库创建初始返回的 jsonWrite 并执行 replaceAll("\x5C", "\"),用 html 代码替换字符,以便它仍然显示并能够被解析.

于 2010-10-05T17:16:21.090 回答