我想写一个PHP代码来检查一个变量是否只包含字母而不是字符而不是数字,我输入了这个但它不起作用:
$myVar = "Var#iable5";
ereg(^[a-zA-Z] , $myVar)
答案 0 :(得分:8)
不需要正则表达式:
$result = ctype_alpha($myVar);
答案 1 :(得分:1)
首先不要使用ereg()。这已经被折旧了几年,并且将在某些时候从PHP中删除。另外,您的模式不正确。 ^
因为你正在使用它是一个模式锚点,表示"行开始"。
你想:
preg_match('/[^a-zA-Z]/', $myVar)
代替。作为[]
组中的第一个字符,^
表示"不",所以"不是a-zA-Z",不是" [a -zA-Z]在线的开头"正如你所想的那样。
答案 2 :(得分:1)
PHP有一个内置函数来执行此操作:ctype_alpha
$myVar = "Var#iable5";
var_dump (ctype_alpha($myVar)); // false
来自文档:
检查提供的字符串中的所有字符是否为字母。在标准C语言环境中,字母只是[A-Za-z]而ctype_alpha()等同于(ctype_upper($ text)|| ctype_lower($ text))如果$ text只是一个字符,但其他语言都有字母被认为既不是大写也不是小写。