我知道有函数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 的范围,末尾的 " " 表示空格。
希望这对某人有所帮助。