-2

我有一个 html 表单(它是商店的收据表单),其中包含大约一百个文本框,并且假设用户输入一个浮点值"20.2*33.4"形式的东西。表单被提交到一个 php 页面。我想确保每个文本框都包含相同的模式,然后我想评估文本内部的乘法。

我想知道如何检查字符串是否为“float*float”格式?

任何人都可以帮忙。谢谢你

4

2 回答 2

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]);
}

演示:http: //ideone.com/azhMag

于 2013-01-28T20:15:53.020 回答
-2

这是不可能的,您可以使用的唯一功能是 eval 但在表单中使用它非常危险。

如果要评估表达式,则需要创建自己的语言(使用解析器、词法分析器等)。

所以这是不可能的。你可以看这里http://en.wikipedia.org/wiki/Shunting-yard_algorithm

编辑:如果它只是一个简单的乘法,总是有两个部分,你可以按照上面的评论来分解它。

于 2013-01-28T19:42:35.767 回答