47 votes

eval javascript, vérification des erreurs de syntaxe

Je voulais savoir s'il était possible de trouver par javascript si un appel à eval() a une erreur de syntaxe ou une variable non définie, etc... donc disons que j'utilise eval pour un javascript arbitraire, y a-t-il un moyen de capturer la sortie d'erreur de cet eval ?

1voto

ßãlãjî Points 95

T

T

N

T

npm install esprima --save

c

var esprima = require('esprima');
var userStringToTest = 'var a = 50;';

var isValid = isValidJs(userStringToTest);

if(isValid) {
  alert('its validated!');
}
else {
  console.log('its NOT valid syntax!');
}

function isValidJs(testString) {
  var isValid = true;
  try {
    esprima.parse(testString);
  }
  catch(e) {
    isValid = false;
  }
  return isValid;
}

0voto

Enraged Falcon Points 5

p

    //b="4+6";
    try { eval(b); } 
    catch (err) {
       if (err instanceof SyntaxError)
          document.getElementById('screen').innerHTML = "<i>Syntax Error</i>";

        /*In html make a div and put id "screen" in it for this to work
        you can also replace this line with document.write or alert as per your wish*/
    }
    finally {
         document.getElementById('screen').innerHTML = eval(b); //outputs answer
    }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X