我想知道在用ctype_alpha检查时是否可以在文本字段中允许空格。由于ctype_alpha只允许使用字母,我不知道如何让用户在字段中输入空格。我确实尝试过使用ctype_space但是没有用。我只是希望用户能够只键入字母表,并且如果他们“希望”,他们可以选择包含空格。我希望我不必使用正则表达式。
elseif (!ctype_alpha($fname))
{
echo "Your name may only contain alphabetical letters";
}
答案 0 :(得分:23)
这就是我要做的事情
if (!ctype_alpha(str_replace(' ', '', $fname)))
这只允许使用空格,但是如果你想允许的不仅仅是空格,比如标点符号,或者不允许,read up on str_replace,它允许使用数组
str_replace(array(' ', "'", '-'), '', $fname)
我建议这样做,因为名字可能有撇号和姓氏也可能有破折号
答案 1 :(得分:1)
您也可以在执行ctype_alpha之前简单地删除空格。
$fname=str_replace(" ", "", $fname);
if(!ctype_alpha($fname)){
echo "Your name may only contain alphabetical letters";
}
答案 2 :(得分:0)
删除空格是可行的方法,但是记住ctype_alpha这些天在空字符串上会导致错误! 在我使用的方法下面......
function validateAlpha($valueToValidate, $spaceAllowed = false) {
if ($spaceAllowed) {
$valueToValidate = str_replace(' ', '', $valueToValidate);
}
if (strlen($valueToValidate) == 0) {
return true;
}
return ctype_alpha($valueToValidate);
}