我有一个html表单(它是商店的收据表单),其中包含大约一百个文本框,用户可以输入浮点值或的形式> “20.2 33.4 *”即可。表单提交到php页面。我想确保每个文本框都包含相同的模式,然后我想评估文本中的乘法。
我想知道如何检查字符串格式是否为“float * float”?
请任何帮助。谢谢
答案 0 :(得分:1)
您可以使用正则表达式检查格式,然后解析数字和运算符,然后进行计算。
$total = 0;
$string = '20.2*33.4';
if(preg_match('/^(\d*\.?\d+)(?:\*)(\d*\.?\d+)$/', $string, $matches) === 1){
$total = floatval($matches[1]) * floatval($matches[2]);
}
答案 1 :(得分:-2)
这是不可能的,你可以使用的唯一功能是eval,但它在表格中使用非常危险。
如果要评估表达式,则需要创建自己的语言(使用解析器,词法分析器等)。
所以这是不可能的。你可以看看http://en.wikipedia.org/wiki/Shunting-yard_algorithm
编辑:如果它只是一个简单的乘法,总是两个部分,你可以像上面评论的那样爆炸它。