5

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

我如何允许字母字符和空格,但没有别的?

4

5 回答 5

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

或者

$is_alpha_space = preg_match('/^[a-z\s]*$/i', $input);
于 2012-04-22T05:24:01.480 回答
2
if (preg_match("^/[a-zA-Z ]+$/", $input)) {
    // input matches
}

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

于 2012-04-22T04:57:31.113 回答
0

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

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

于 2012-04-22T04:59:14.997 回答
0

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

function validateAlpha($valueToValidate, $spaceAllowed = false) {
    if ($spaceAllowed) {
        $valueToValidate = str_replace(' ', '', $valueToValidate);
    }
    if (strlen($valueToValidate) == 0) {
        return true;
    }
    return ctype_alpha($valueToValidate);
}
于 2017-08-10T08:25:00.503 回答
0

我会使用简单的正则表达式和 php 函数preg_match()来解决,如下所示:

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

这里的重要部分是标识你想要的部分的正则表达式,在我的例子中,我想要一个名称字段的文本,并带有空格,如这里的大小写。[az] 是从 a 到 z 的范围,AZ 是从 A 的范围到 Z 和末尾的“”代表空格。

希望这可以帮助某人。

于 2020-05-06T01:32:01.773 回答