2016-04-11 21 views
2

Kullanıcı adı "abcd1234" gibi 4 harf + 4 basamak olarak tanımlamak istiyorum.Laravel Regex Validation çalışmıyor

public function rules() 
    { 
     return [ 
      'username' => 'required|regex:/^[A-Za-z]{4}\d{4}$/|unique:users', 
      'email' => 'required|email|unique:users', 
      'password' => 'required|confirmed|min:8' 
     ]; 
    } 

Ancak regex doğrulama hiç çalışmıyor: İşte laravel 5 benim kodudur. Bu problem nasıl çözülür? Teşekkürler!

+1

harfler ve rakamlar herhangi bir sırada olabilir mi? – rock321987

cevap

0

Kodun doğru olduğu anlamına gelir 4 harf anlamı varmış gibi bir şeyler yapmalıyım. Sorun, RegisterRequest.php'da use App\Http\Requests\Request;'un kaçırılmamasıdır. RegisterRequest.php yılında

ifadeleri böyle olmalıdır:

<?php namespace App\Http\Requests\Auth; 

use App\Http\Requests\Request; 

class RegisterRequest extends Request { 

    /** 
    * Get the validation rules that apply to the request. 
    * 
    * @return array 
    */ 
    public function rules() 
    { 
     return [ 
      'username' => 'required|regex:/^[A-Za-z]{4}\d{4}$/|unique:users', 
      'email' => 'required|email|max:255|unique:users', 
      'password' => 'required|min:8|confirmed', 
     ]; 
    } 

} 

Son olarak, 'username' => 'required|regex:/^[A-Za-z]{4}\d{4}$/|unique:users' eserler çok iyi!

0

regex

doc Gönderen: desen

doğrulama altında alan verilen düzenli ifadeyi aynı olmalıdır.

Not: Normal ifade desenini kullanırken, özellikle düzenli ifade, bir boru karakteri içeriyorsa, boru sınırlayıcıları kullanmak yerine kurallarının bir dizide belirtilmesi gerekebilir.

Yani, bu

$rules = array('form_field' => array('required', 'regex:foo')); 
+0

@ rock321987 tesadüf olabilir. – Drudge

+0

Ben 'username' => dizi denedim ('gerekli', 'regex:/^ [A-Za-z] {4} \ d {4} $ /') '. Ama hala çalışmıyor. –

0
[a-zA-Z]{4}\d{4} 

[a-zA-Z]{4}\d{4} 4 basamak

+0

Anlamını kim istiyor? – rock321987