2012-02-06 18 views
9

Podczas używania sprawdzania poprawności formularza kodu Czy alfa zezwala na spacje? Dawny. "Bob Smith"Zatwierdzenie formularza kodu weryfikacyjnego. Alfa i spacje

+0

Czy to wypróbowałeś? Według [the docs] (http://codeigniter.com/user_guide/libraries/form_validation.html#rulereference), to po prostu "znaki alfabetyczne", więc nie ma spacji. –

+0

yups, nie pozwala na spację, ale można utworzyć funkcję zwrotną, aby to sprawdzić. zobacz tę stronę dla szczegółów, [http://nanamo3lyana.blogspot.com/2012/06/simple-function-to-validate-alpha.html](http://nanamo3lyana.blogspot.com/2012/06/simple- function-to-validate-alpha.html) – mo3lyana

Odpowiedz

15

Oto kod, który powinien rozwiązać problem:

function alpha_dash_space($str) 
{ 
    return (! preg_match("/^([-a-z_ ])+$/i", $str)) ? FALSE : TRUE; 
} 

w przepisach, można nazwać to jak następuje:

$this->form_validation->set_rules('name', 'Name', trim|xss_clean|callback_alpha_dash_space'); 

Edytuj

Usunięto jeden dodatkowy _ z callbac k_alpha_dash_space

+0

Po prostu mała uwaga: CI 2.1.4 przyjmuje tylko jedno podkreślenie podczas ustawiania funkcji sprawdzania poprawności jako wywołania zwrotnego (np. "callback_alpha_dash_space"). – a7omiton

+0

Użyłem go i pozwoliło to również na numery ... Powinienem ograniczyć się do alfa tylko – Robin

+0

, jeśli chciałem nie dopuścić kreski, wtedy wyrażenie regularne to '/^([a-z_]) + $/i' ? –

1

Można użyć

$field = trim($_POST['field']); 
$_POST['field'] = str_replace(' ', '', $_POST['field']); 

i sprawdzić go jako alfa w regule, a następnie można użyć $ pole po pomyślnej weryfikacji.

$this->form_validation->set_rules('field', 'FIELD', 'alpha'); 
5

Wiem, że jestem spóźniony, aby odpowiedzieć na to pytanie. Ale dla tych, którzy wciąż szukają odpowiedzi na jak tylko pozwalają liter i spacji, można postępować w ten sposób:

W walidacji formularza

$this->form_validation->set_rules('fullname', 'Fullname', 'min_length[7]|trim|required|xss_clean|callback_alpha_dash_space'); 

Następnie dodać funkcję zwrotną dla alpha_dash_space

function alpha_dash_space($fullname){ 
    if (! preg_match('/^[a-zA-Z\s]+$/', $fullname)) { 
     $this->form_validation->set_message('alpha_dash_space', 'The %s field may only contain alpha characters & White spaces'); 
     return FALSE; 
    } else { 
     return TRUE; 
    } 
} 
  • ^ i $ Informuje t kapelusz jest początek i koniec łańcucha
  • a-z są małe litery, wielkie litery są A-Z
  • \s jest spacja i + oznacza 1 lub więcej razy.

Mam nadzieję, że pomogło!

Powiązane problemy