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

时间:2014-04-03 23:08:34

标签: php

(!ctype_alpha($director)) 

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

EG

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

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

4 个答案:

答案 0 :(得分:2)

这很大程度上取决于你所谓的字母,例如:a-z? a-záéç?对于第一个你应该使用:

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

第二个:

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

如需更多选项,请查看PHP's PCRE manual page

答案 1 :(得分:0)

尝试以下方法:

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将是您选择的字符串。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

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
}