Php 检查输入是否有错误的数学表达式

Php 检查输入是否有错误的数学表达式,php,regex,Php,Regex,构建一个php计算器应用程序时,我对如何处理一个特定案例感到有点困惑 通常,我使用preg\u match通过正则表达式检查输入,但是 我所困惑的是如何涵盖09+0的情况,我想确保没有一个数字有一个零,然后在它的右边有一个数字 在左边,它可以是除/符号以外的任何符号。更多示例包括以下内容:01+100,33+011等(本质上,我想让用户知道这是错误的输入,但很难确定检查它的最佳方式 编辑1(到目前为止的代码): 请用您目前掌握的代码更新您的问题。@RobLang Just Updated如果您谈

构建一个php计算器应用程序时,我对如何处理一个特定案例感到有点困惑

通常,我使用
preg\u match
通过正则表达式检查输入,但是 我所困惑的是如何涵盖
09+0
的情况,我想确保没有一个数字有一个零,然后在它的右边有一个数字

在左边,它可以是除
/
符号以外的任何符号。更多示例包括以下内容:
01+100
33+011
等(本质上,我想让用户知道这是错误的输入,但很难确定检查它的最佳方式

编辑1(到目前为止的代码):


请用您目前掌握的代码更新您的问题。@RobLang Just Updated如果您谈到用户,我认为您需要使用Javascript之类的客户端编程语言。在您的代码中,您可以从左侧删除0,但这不是必需的,因为如果您返回int值,php会自动删除0。现在,删除左侧的0另一方面,您可以使用$number=ltrim($number,'0'));。但我坚持认为,如果你想让用户知道把0放在左边是不正确的,你需要使用javascript。请用你到目前为止的代码更新你的问题。@RobLang刚刚更新如果你谈论用户,我认为你需要使用像javascript这样的客户端编程语言。在你的代码中,你可以从左边的s中删除0ide,但不是必需的,因为如果返回int值,php会自动删除0。现在,要删除0左侧,可以使用$number=ltrim($number,'0');。但我坚持认为,如果希望用户知道将0放在左侧是不正确的,则需要使用javascript。
$input=$_GET["expr"]; 
$nospace_input=str_replace(' ', '', $input); 
$input = str_replace('--','+',$input);
$correct_format=preg_match("/^[-.,0-9][-+*.\/, 0-9]+$/",$input);


if ($correct_format==0 && $nospace_input=="") {
//do nothing
}

elseif ($divby_zero==1) {
  echo "Can't do div by zero!";
}

elseif($correct_format==1) {
  $result = eval('return ' .$input. ';');
  echo $input . " = " . $result;
}

else {
 echo "Not valid";
}