我有一个输入框,用户可以输入他们的赌注赔率。这可以是小数形式,因此 - >例如1或6.2等,或者例如5/1或13/2等的分数
检查这些输入的最佳方法是什么?
答案 0 :(得分:0)
我认为正则表达式是最好的方法
if(preg_match("@^\d*\.?\d+(/\d*\.?\d+)?$@", $value)) {
echo "$value is valid";
}
这个正则表达式允许:.1 | 2.0 / 54 | 2.3 | .5 / .8 | 8/7 | 85.98 | .....
如果您还需要,
字符(某些语言使用它),那么"@^\d*[\.,]?\d+(/\d*[\.,]?\d+)?$@""
编辑修正了“4 /”案件
答案 1 :(得分:-1)
使用正则表达式,例如^(\d+\/\d+|\d+\.\d+|\d+)
。它匹配1,6.2,5 / 1和13/2,但不匹配.1,1等等。使用preg_match()函数检查输入是否匹配。
$nums = ['1', '6.2', '5/1', '13/2', '.3', 'a'];
foreach ($nums as $num) {
print "$num:" . preg_match("/^(\d+\/\d+|\d+\.\d+|\d+)/", $num) . "\n";
}