пытаясь заменить символ "\", используя JavaScript для парсера json - PullRequest
0 голосов
/ 05 октября 2010

У меня есть следующая строка JavaScript:

YAHOO.lang.JSON.parse(txt)

Где текст - это строка, извлекаемая из базы данных. Это пример одной из проблемных строк, которые я получаю:

5000\25\30%

Насколько я могу судить, синтаксический анализатор JSON генерирует синтаксические ошибки для символа /. Я просмотрел потоки здесь, и большинство из них говорят, чтобы изменить его на "//", но я извлекаю сотни значений из базы данных, поэтому я не могу изменить их источник. Я пытаюсь заставить его заменить символ '/' только пустой строкой, так как на самом деле мне не нужно отображать '/', но у меня возникают трудности. Мой текущий код замены выглядит так:

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

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

 }

но ничего не происходит. Иногда проверка «indexOf» завершается неудачно, поэтому я попытался выполнить замену для каждой строки, но она все равно не заменила ни один из символов '\'. Итак, вот мой вопрос: если я получаю строку с одним или несколькими символами '\' и мне нужно удалить их для анализатора JSON с использованием javascript, как мне это сделать; или как мне заставить синтаксический анализатор JSON принять символ \ без изменения исходной строки.

Редактировать: Я думаю, что может быть проблема в том, что "\ 2" и все остальные оценивают и исключают символы, которые ничего не делают. Эти символы всегда экранированы, поэтому их нельзя заменить. Можно ли вообще исправить ошибку?

1 Ответ

0 голосов
/ 05 октября 2010

Я смог понять это.Для этого потребовалось изменить jsonWrite, который создавал начальный возврат из базы данных и выполнял replaceAll ("\ x5C", "\"), заменяя символ на HTML-код для него, чтобы он по-прежнему отображался и мог быть проанализирован.

...