Как мне избежать eval () от преобразования 1e-1 в 0.1? - PullRequest
3 голосов
/ 31 января 2012

Я использую библиотеку JavaScript стороннего производителя, которая использует eval(), поэтому, когда я вызываю одну из ее функций со значением "1e-1" в качестве параметра, я получаю 0.1 возвращенное значение. Как я могу избежать этого или избежать разбора числа?

Базовым примером будет:

console.log(eval("1e-1"));

Я хочу, чтобы результат был 1e-1, но eval все еще должен быть там.


EDIT:

Ладно, проигнорируйте приведенный выше пример консоли Это пример , на котором он должен работать:

Нет возможности использовать эту библиотеку. К сожалению.

Ответы [ 2 ]

2 голосов
/ 31 января 2012

Не используйте eval ().Конечно, Number("1e-1") имеет такую ​​же «проблему».Тем не менее, если вы хотите вернуть строку из eval, вы должны передать ее одной: eval("'1e-1'").

2 голосов
/ 31 января 2012

Один из быстрых способов сделать это - просто заменить дефис на код персонажа:

console.log(eval("1e-1"));

Обновить

После длительного экспериментаединственное, что было близко - это ставить пробелы до и после дефиса:

features[1].attributes.tag= "1e - 1";

Я подумал, что стоит упомянуть, если этого достаточно для того, что вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...