如何检查字符串是否只包含PHP中的字母?

时间:2014-09-02 17:16:25

标签: php regex

我想写一个PHP代码来检查一个变量是否只包含字母而不是字符而不是数字,我输入了这个但它不起作用:

$myVar = "Var#iable5";

ereg(^[a-zA-Z] , $myVar)

3 个答案:

答案 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只是一个字符,但其他语言都有字母被认为既不是大写也不是小写。