使用Codeigniter,我如何在表单验证中接受欧元货币?

时间:2012-01-21 14:55:01

标签: php codeigniter

我正在根据“十进制”验证我的字段,但我想支持欧元。如何验证该字段是否可以显示欧元的小数点或逗号?在我的数据库中,我将把所有内容转换为INT并乘以100。

1 个答案:

答案 0 :(得分:2)

您需要在名为/application/libraries/

MY_Form_validation.php中创建一个文件

在此文件中,您可以覆盖用于验证小数的十进制方法。您的文件应如下所示

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class MY_Form_validation extends CI_Form_validation {
    /**
     * Decimal number
     *
     * @access  public
     * @param   string
     * @return  bool
     */
    function decimal($str)
    {
        return (bool) preg_match('/^[\-+]?[0-9]+[\.,][0-9]+$/', $str);
    }
}

// END Form Validation Extension Class

/* End of file MY_Form_validation.php */
/* Location: ./application/libraries/MY_Form_validation.php */

此方法与原始方法之间的区别在于中间的[\.,]。在原始文件中,它只是\.,只允许句点.

如果您不想更改小数法的工作方式,可以将其重命名为euro,然后只需添加euro作为验证规则。