【问题标题】:I want to define a validation for my field in yii我想在 yii 中为我的字段定义一个验证
【发布时间】:2013-12-02 11:36:50
【问题描述】:

我想为我的字段定义一个验证: 所有数字除了零和二 我可以定义我的模式吗? $ 和 U ,p 和其他字符是什么意思?

'pattern'=>'/^[\p{L}\s,0-9]+$/u'

【问题讨论】:

    标签: validation yii pattern-matching


    【解决方案1】:

    过于复杂的正则表达式对你没有任何好处。相反,请利用 not 设置,它可以有效地为您反转模式:

    public function rules() {
        return array(
            array('field_name','pattern'=>'/^[02]$/','not'=>true),
        );
    }
    

    【讨论】:

      【解决方案2】:

      在模型中添加代码

      public function rules()
      {
          return array(
                  array('field_name','match', 'pattern'=>'/^[^02]+$/u','message'=>'Invalid Number.'),
          );
      }
      

      【讨论】:

      • @Gaidhane 它适用于 0 和 2,我想除 2 和 0 之外是什么意思 \p 或 {L} 和 \s 和 []????
      • 查看这个数组('field_name','match', 'pattern'=>'/^[^02]+$/u','message'=>'无效号码。') ,
      • 对于您的其他查询,请访问此站点cs.cf.ac.uk/Dave/PERL/node79.html
      • 您的回复对我非常有用,但我无法投票,因为我的声誉低于 15,但我接受了您的回答!我不知道为什么?我该怎么办?可以帮我?我的身份证是 masoudy.maryam@gmail.com
      • 你能解释一下 ^ out of beraket[] 和 ^ in to beraket 是什么意思吗?如何定义模式的长度?样本验证是除零和两个以外的所有数字,固定 10 个数字
      【解决方案3】:

      你使用你的模型规则来做

      public function rules() {
          return array(
                         // your other rules
              array('fieldName', 'patternCheck'),
          );
      }
      
      public function patterCheck($attribute, $params){
          $pattern = '/^[\p{L}\s,0-9]+$/u';
          preg_match($pattern, $attribute->fieldName, $matches, PREG_OFFSET_CAPTURE);
          return $matches;
      }
      

      这将验证您的字段

      【讨论】:

      • 它适用于 0 和 2,我想除 2 和 0 之外是什么意思 \p 或 {L} 和 \s 和 []????
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-05
      相关资源
      最近更新 更多