如何检查变量是否包含字母字符但允许空格


How to check if a variable contains alphabetic characters but allow spaces?

(!ctype_alpha($director)) 

我正在尝试使用 ctype_alpha() 函数。

EG

if(!ctype_alpha($variable)) {
   The value entered contains other characters.
} 

这种方法的问题在于它不允许带有空格的字符串。如何确保用户只输入字母,但允许空格(即名称)?

这在很大程度上取决于你所说的字母顺序,比如:a-z? a-z á é ç?首先,您应该使用:

if (preg_match("/^[a-zA-Z ]*$/",$variable)) {
}

对于第二个:

if (preg_match("/^[[:alpha:] ]*$/",$variable)) {
}

有关更多选项,您应该查看PHP的PCRE手册页。

它会

很慢,但对于小的输入流不是问题,您可以简单地一次循环一个字符的字符串并检查 !ctype_alpha( $c ) &&! ctype_space( $c )。

尝试以下操作:

preg_match('/[a-zA-Z ]+/', $variable, $matches);
print_r($matches);

实际上

function alphaSpace($string){
  return preg_match('/[a-zA-Z ]+/', $string) ? 1 : 0;
}
echo alphaSpace($someString) ? "It's a match!" : "It's not a match.";

,只会显示是否有匹配项。当然,$someString将是您选择的字符串。

你可以

像我的代码一样使用function。我使用str_replace在进入if else条件之前删除空格。因此,如果variable包含字母字符,它将返回TRUE

function check_string($var){
    $var = str_replace(' ', '', $var);
    if(ctype_alpha($var)){
      $result = TRUE;
    }
    else{
      $result = FALSE;
    }
    return $result;
  }

EG

if(check_string($var)) {
   TRUE IF VARIABLE CONTAINS ALPHABETIC CHARACTERS
}