Проверка вырожений
Привет!не могу понять задание,
Нужно проверить правильное ли это выражение или нет. Input:"+sd3-sd"; :true; Input:"c+=asd" Output:false :help: :help: |
мда,странное задание.попробуй типо
a = 1; b = undefined; alert( !!a ); alert( !!b ); |
:blink: :blink: :blink:
|
друг,по другому не знаю как.Условие странное .Если б знал,помог
|
var a, b;
function test(str) {
try {
eval(str);
return true;
}
catch(e) {
return false;
}
}
alert(test("b+=++a"));
alert(test("++a+==4++b-"));
|
eval не подходит, код может быть синтаксически правильным, но свалиться при выполнении. И переменные там могут быть любые.
Надо через new Function
var str = "b+=+a++++++";
try { new Function(str); alert(" ok"); } catch(e) { alert("error"); }
|
Цитата:
|
Dilettante_Pro,
eval('throw 1') eval('a()') и т.д. автор не указал, какие там у него выражения могут быть. но даже если там обычная арифметика и присваивания, то всё равно упремся в проблему неопределенных переменных. |
| Часовой пояс GMT +3, время: 06:38. |