如何在 PHP 中验证仅包含空格的字母字符串


How to validiate for a solely alphabetic string with spaces in PHP?

我知道有函数ctype_alpha,尽管当字符串包含空格(空格字符)时,这个函数会返回FALSE

如何允许字母字符和空格,但不允许其他字符和空格?

$is_alpha_space = ctype_alpha(str_replace(' ', '', $input)));

$is_alpha_space = preg_match('/^[a-z's]*$/i', $input);
if (preg_match("^/[a-zA-Z ]+$/", $input)) {
    // input matches
}

演示:http://ideone.com/jp6Wi
文档: http://php.net/manual/en/function.preg-match.php

ctype_alpha(preg_replace('/'s/', '', $mystring))

内部表达式返回不带空格的字符串,然后根据需要使用 ctype_alpha''

删除空格是要走的路,但请记住ctype_alpha这些天会导致空字符串上的 false!在我使用的方法下面...

function validateAlpha($valueToValidate, $spaceAllowed = false) {
    if ($spaceAllowed) {
        $valueToValidate = str_replace(' ', '', $valueToValidate);
    }
    if (strlen($valueToValidate) == 0) {
        return true;
    }
    return ctype_alpha($valueToValidate);
}

我会像这样使用一个简单的正则表达式和 php 函数 preg_match():

if(preg_match("/^[a-zA-Z ]+$/", $varToCheck)){
  //your code here
}
这里

重要的部分是标识您想要的部分的正则表达式,在我的情况下,我想要名称字段的文本和空格,就像这里的情况一样。[a-z] 是从 a 到 z 的范围,A-Z 是从 A 到 Z 的范围,末尾的 " " 表示空格。

希望这对某人有所帮助。