检查输入编号在Codeigniter表单验证中是否有效

时间:2013-07-01 08:34:52

标签: php codeigniter

您可以帮我确认输入号码是否有效。

它可以是一个整数 它也可以是十进制数,但间隔是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;

3 个答案:

答案 0 :(得分:2)

您可以使用一个正则表达式^\d+(?:\.[05]0*)?$验证它:

if(preg_match('#^\d+(?:\.[05]0*)?$#', $bkpoints)){
    echo 'valid';
}

<强>解释

  • ^:行首
  • \d+:匹配数字一次或多次
  • (?::非捕获组的开始
    • \.:匹配点
    • [05]:匹配05
    • 0:匹配0零次或多次
  • ):非捕获组的结束
  • ?:将该组设为可选
  • $:行尾

online regex demo

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