i am trying to convert a string value to expression so that i can use it in if condition like:
var StringVal = '20 > 18 && "yes" == "yes"';
if(StringVal){
....
}
is it possible to do this, please suggest me.
Thanks
It's not generally safe to take input from a user source and evaluate it, but you could use Function
evaluation, or eval
var StringVal = '20 > 18 && "yes" == "yes"';
if (new Function('return (' + StringVal + ')')()) {
console.log('ok');
}
Are eval() and new Function() the same thing?
Update: If you could give further information in your question as to why you feel this is necessary along with an example of your actual code, then a safer solution could be suggested.
Further: In JSON2
, eval
is used in JSON.parse
https://github.com/douglascrockford/JSON-js/blob/master/json2.js#L491
but you will also notice that some sanitising is performed before eval
is called.
You can use function eval()
try this:
var StringVal = '20 > 18 && "yes" == "yes"';
if(eval(StringVal)){
....
}
other example:
var a = '1==3'
var b = '1==1'
console.log(eval(a));
// false
console.log(eval(b));
// true
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With