【问题标题】:Using the Codeigniter form validation library, how can I ensure at least one letter is entered?使用 Codeigniter 表单验证库,如何确保至少输入一个字母?
【发布时间】:2012-02-09 18:56:44
【问题描述】:

我正在使用 Codeigniter 表单验证。在我的注册表单中,Username 字段只允许像 123456 这样的数字。我不希望这种情况发生。

我的验证规则如下

'rules'=>'trim|required|alpha_numeric|min_length[6]|xss_clean'

我想防止用户只输入数字字符串。字母数字字符串很好,字母字符串很好,但纯数字字符串不行。

【问题讨论】:

  • 你能澄清一下吗? I don't want as only number. 是什么意思?
  • @Colin:应该只是字母数字。例如:如果我将 用户名 作为唯一数字 123456 则不应允许注册。

标签: codeigniter validation


【解决方案1】:

只允许字母

alpha 添加到您的规则中并从您的规则中删除alpha_numeric

您可以使用this page 作为内置验证规则的参考点。

编辑:

既然你现在已经澄清了。

为此,没有内置的验证规则。您需要通过创建libraries/MY_Form_validation.php 文件来扩展Form_validation 库。请参阅 this manual page 了解如何扩展库。

在这个文件中,创建如下函数

function at_least_one_letter($string) {
    return preg_match('#[a-zA-Z]#', $string);
}

然后您可以将验证规则at_least_one_letter 添加到您的规则中。

【讨论】:

【解决方案2】:

根据代码点火器user manual

您还可以使用任何允许一个参数的原生 PHP 函数。

我认为在这种情况下is_int 可以用作您的验证规则。

例如:

'rules'=>'trim|required|is_int|min_length[6]|xss_clean',

【讨论】:

  • 谢谢..我认为codeigniter中的integeris_int和is_numeric是一样的。有什么办法可以在 CI 中做而不是使用 php 函数?
  • 你可以直接在你的验证规则中使用php函数:'rules'=>'trim|required|is_int|min_length[6]|xss_clean',
  • 由于它来自使用post 的表单,它将是一个数字字符串而不是整数。您需要使用is_numeric
  • 谢谢,我想要 !is_int,我的意思是它应该是 不是整数或数字
  • 请澄清。选项 1:没有数字,只有字母。选项 2:数字和字母。选项 3:本身没有数字,必须包含一个字母。?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多