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 ?
Réponses
Trop de publicités?
ßã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;
}
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
}
- Réponses précédentes
- Plus de réponses