• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:evalを使うinputがある場合も安全に運用する)

evalを使うinputがある場合も安全に運用するための方法

このQ&Aのポイント
  • evalを使うinputがある場合も安全に運用するための方法として、エスケープを行います。
  • 四則演算子、数字、括弧以外は削除され、式として成立しない文字列は計算できません。
  • エスケープの表記位置はevalを実行する前であればどこでも良いです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.22

>!"#$%&',:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ >をInputに入れてアラートの処理が実行されるか確かめてみます 「catch内が実行されるか(アラートの処理が実行されるか)」ではなく >r = r.replace(/([^0-9\.\-\/\*\+\(\) ]+)/g, ' '); >r = r.replace(/([\*\/])[ \+\-\*\/]*([\+\-])[ ]*([0-9\.\(]+)/g, '$1$2$3'); >r = r.replace(/[\+\-][ \+\-\*\/]*([\+\-])[ ]*([0-9\.\(]+)/g, '$1$2'); >r = r.replace(/(^|\()[ \+\-\*\/]*([\+\-])/g, '$1$2'); >r = r.replace(/(^|\()[ \+\-\*\/]*[\*\/]/g, '$1'); >r = r.replace(/([\+\-\*\/])[ \+\-\*\/]*[\*\/][ ]*([0-9\.\(]+)/g, '$1$2'); >r = r.replace(/([ ]+)/g, ' '); ↑この「r」変数の値が''(ヌル文字)(文字が何も無い文字列)になるか、実際の「r」変数の値を表示してみて下さい。

その他の回答 (21)

回答No.1

とりあえず1*-1ができない

okweb12345
質問者

お礼

マイナスをかけることが出来ないという事でしょうか? 他はできるのですね。

関連するQ&A