您可以帮我确认输入号码是否有效。
它可以是一个整数 它也可以是十进制数,但间隔是0.5,所以0.5,1.5,2.5是可以的,但.2,1.3,2.6无效。
if ((preg_match('/^\d+\.\d+$/',$bkpoints)) || (preg_match('/^\.\d+$/',$bkpoints)))
{ {
if ($bkpoints % 0.5 !== 0)
{
$this->form_validation->set_message('is_bk_decimal','Bk points decimal value should be incremented by 0.5');
return false;
}
}
return true;
答案 0 :(得分:2)
您可以使用一个正则表达式^\d+(?:\.[05]0*)?$
验证它:
if(preg_match('#^\d+(?:\.[05]0*)?$#', $bkpoints)){
echo 'valid';
}
<强>解释强>
^
:行首\d+
:匹配数字一次或多次(?:
:非捕获组的开始
\.
:匹配点[05]
:匹配0
或5
0
:匹配0
零次或多次)
:非捕获组的结束?
:将该组设为可选$
:行尾答案 1 :(得分:0)
在PHP中尝试is_numeric()
函数:
http://php.net/manual/en/function.is-numeric.php
如果数字是有效数字,则返回true,否则返回false。
答案 2 :(得分:-1)
或者您也可以使用ereg()
功能:
if(ereg("^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$", "0.9")){
echo "number";
}else{
echo "not a number";
}