Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.09.2019, 16:35
Новичок на форуме
Отправить личное сообщение для AndreyOd Посмотреть профиль Найти все сообщения от AndreyOd
 
Регистрация: 12.09.2019
Сообщений: 2

Проверка вырожений
Привет!не могу понять задание,
Нужно проверить правильное ли это выражение или нет.
Input:"++a+==4++b-";
Output:true;
Input:"b+=++a"
Output:false

Как это можно проверить?

Ответить с цитированием
  #2 (permalink)  
Старый 12.09.2019, 16:43
Аспирант
Отправить личное сообщение для weirdjava Посмотреть профиль Найти все сообщения от weirdjava
 
Регистрация: 01.03.2017
Сообщений: 31

мда,странное задание.попробуй типо

a = 1;
b = undefined;
alert( !!a );
alert( !!b );
Ответить с цитированием
  #3 (permalink)  
Старый 12.09.2019, 16:59
Новичок на форуме
Отправить личное сообщение для AndreyOd Посмотреть профиль Найти все сообщения от AndreyOd
 
Регистрация: 12.09.2019
Сообщений: 2

Ответить с цитированием
  #4 (permalink)  
Старый 12.09.2019, 18:18
Аспирант
Отправить личное сообщение для weirdjava Посмотреть профиль Найти все сообщения от weirdjava
 
Регистрация: 01.03.2017
Сообщений: 31

друг,по другому не знаю как.Условие странное .Если б знал,помог
Ответить с цитированием
  #5 (permalink)  
Старый 12.09.2019, 18:35
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,893

var a, b;

function test(str) {
   try {  
      eval(str);
      return true;
   }
   catch(e) {
     return false;
   }
}

alert(test("b+=++a"));
alert(test("++a+==4++b-"));

Последний раз редактировалось Dilettante_Pro, 13.09.2019 в 16:07.
Ответить с цитированием
  #6 (permalink)  
Старый 13.09.2019, 10:30
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 699

eval не подходит, код может быть синтаксически правильным, но свалиться при выполнении. И переменные там могут быть любые.

Надо через new Function

var str = "b+=+a++++++";
try { new Function(str); alert(" ok"); } catch(e) { alert("error"); }
Ответить с цитированием
  #7 (permalink)  
Старый 13.09.2019, 16:16
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,893

Сообщение от Alexandroppolus
код может быть синтаксически правильным, но свалиться при выполнении
Пример можно?
Ответить с цитированием
  #8 (permalink)  
Старый 13.09.2019, 19:54
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 699

Dilettante_Pro,

eval('throw 1')
eval('a()')

и т.д.

автор не указал, какие там у него выражения могут быть.
но даже если там обычная арифметика и присваивания, то всё равно упремся в проблему неопределенных переменных.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проверка, пока файл не будет готов headmaster911 AJAX и COMET 4 18.04.2017 08:44
Проверка 'авторизации' DJ_CD Элементы интерфейса 4 18.12.2014 14:19
проверка формы не работает в ie begelme Javascript под браузер 6 13.08.2013 00:00
Проверка встроенной поддержки типа с помощью библиотеки Modernizr viy.li Библиотеки/Тулкиты/Фреймворки 3 15.06.2013 14:48
Проверка данных формы составным условием? myafa Элементы интерфейса 8 01.04.2011 07:30