2015-01-29 2 views
-1

Моя цель - проверить, является ли данная строка в формате выражения или нет?разделенное запятой число действительно в функции eval() в javascript

var a = '1 + 2'; // допустимая строка

Eval (а) // получить 3

вар б = '1 * 2'; // допустимая строка

Eval (б) // получить 2

вар с = '1, 2'; // Недопустимая строка

Eval (с) // получить 2

уаг д = 1, 2, 3 '; // Недопустимая строка

Eval (d) // получить 3

В последние два случая, я передал неверную строку, но я получил значение.

Как проверить этот тип недействительной строки

Спасибо у

+0

Читайте об операторе разделителями. – elclanrs

ответ

1

Оператор запятой оценивает каждый из операндов (слева направо) и возвращает значение последнего операнда.

Подробнее - here.

Вот почему две последние строки возвращают 2 и 3. Строка, которую вы прошли, действительна.

1

оператор запятая работает, как показано ниже:

eval('exp1, exp2');

выполняет exp1 первый, а затем выполнить exp2 ... так что вы получите значение exp2 в качестве выхода.

ПРИМЕЧАНИЕ: Вы должны использовать Eval разумно в вашем коде ... это может повредить вам :)

Смежные вопросы