我有一个 html 表单(它是商店的收据表单),其中包含大约一百个文本框,并且假设用户输入一个浮点值或"20.2*33.4"形式的东西。表单被提交到一个 php 页面。我想确保每个文本框都包含相同的模式,然后我想评估文本内部的乘法。
我想知道如何检查字符串是否为“float*float”格式?
任何人都可以帮忙。谢谢你
我有一个 html 表单(它是商店的收据表单),其中包含大约一百个文本框,并且假设用户输入一个浮点值或"20.2*33.4"形式的东西。表单被提交到一个 php 页面。我想确保每个文本框都包含相同的模式,然后我想评估文本内部的乘法。
我想知道如何检查字符串是否为“float*float”格式?
任何人都可以帮忙。谢谢你
您可以使用正则表达式检查格式,然后解析出数字和运算符,然后进行计算。
$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
这是不可能的,您可以使用的唯一功能是 eval 但在表单中使用它非常危险。
如果要评估表达式,则需要创建自己的语言(使用解析器、词法分析器等)。
所以这是不可能的。你可以看这里http://en.wikipedia.org/wiki/Shunting-yard_algorithm
编辑:如果它只是一个简单的乘法,总是有两个部分,你可以按照上面的评论来分解它。