8
votes

ctype_alpha mais permettre aux espaces (php)

Je me demandais si on pouvait autoriser des espaces dans un champ de texte lors de la vérification de CTYPE_ALPHA. Puisque ctype_alpha ne permet que des lettres alphabétiques, je ne sais pas comment laisser l'utilisateur entrer dans l'espace dans le champ. J'ai essayé d'utiliser CttPe_Space mais cela n'a pas fonctionné. Je veux simplement que l'utilisateur puisse taper uniquement les alphabets et ils ont le choix d'inclure des espaces s'ils "souhaitent". J'espère que je n'aurai pas à utiliser Regexp. xxx

php

0 commentaires

3 Réponses :


28
votes

C'est ce que je ferais

str_replace(array(' ', "'", '-'), '', $fname)


3 commentaires

Merci pour la suggestion, cela a fonctionné et bienvenue aussi merci pour le lien!


Heureux d'entendre cela a fonctionné pour vous Raj. Si cela répond à vos exigences et que vous ne cherchez pas d'autres suggestions, j'apprécierais bien si vous marquiez la réponse comme acceptée :) acclamations


+ 1 solution créative permet aux autres caractères de voler sous le radar. Je pensais à utiliser cette fonction mais j'ai besoin d'inclure également "-" et "_", merci!



1
votes

Vous pouvez le faire également en supprimant simplement l'espace avant de le faire CTYPE_ALPHA.

$fname=str_replace(" ", "", $fname);

if(!ctype_alpha($fname)){
  echo "Your name may only contain alphabetical letters";
}


1 commentaires

Validation d'une chaîne qui consiste en espaces uniquement entraîne une manière false de cette façon, alors qu'elle devrait entraîner une vraie. Ceci parce que ctype_alpha renvoie false (php> v5.1) sur une chaîne vide.



0
votes

Suppression des espaces est la voie à suivre, mais souvenez-vous que CTYPE_ALPHA entraîne un faux sur une chaîne vide ces jours-ci! En dessous de la méthode que j'utilise ... xxx


0 commentaires