Javascript.RU

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

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



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

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

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
Сообщений: 40

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

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
Сообщений: 1,004

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,899

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

Dilettante_Pro,

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

и т.д.

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



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

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


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