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によって空の文字列がfalseになることを覚えておいてください。私が使用する方法の下で...

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

Simple regexと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 に答える