Php-检查字符串是小数或分数

时间:2014-11-27 11:59:38

标签: php mysql

我有一个输入框,用户可以输入他们的赌注赔率。这可以是小数形式,因此 - >例如1或6.2等,或者例如5/1或13/2等的分数

检查这些输入的最佳方法是什么?

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";
}