我知道有这个函数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 在空字符串上会导致错误!下面我使用的方法...
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
}
这里的重要部分是标识你想要的部分的正则表达式,在我的例子中,我想要一个名称字段的文本,并带有空格,如这里的大小写。[az] 是从 a 到 z 的范围,AZ 是从 A 的范围到 Z 和末尾的“”代表空格。
希望这可以帮助某人。