PHP preg_match 使用正则表达式的简单数学表达式

我想确保输入对于简单计算有效。因此,我只想让字符匹配这些


0 到 9, + - * / ( )


所以我有~[^0-9()+\-*/]~我的正则表达式。它在这里工作正常


所以我在 PHP 中有这段代码。


$exp = (1+2*3)+4;

if(preg_match('~[^0-9()+\-*/]~', $exp)){

  eval("echo $exp;");

} else {

  echo "Bad Expression!";

}

这给了我“糟糕的表达!”


我在这里做错了什么?


胡说叔叔
浏览 94回答 1
1回答

蛊毒传说

使用以下正则表达式。您还需要转义除法 (/) 符号。$exp = (1+2*3)+4;if(preg_match('~^[0-9()+\-*\/]+$~', $exp)){  eval("echo $exp;");} else {   echo "Bad Expression!";}
打开App,查看更多内容
随时随地看视频慕课网APP