2011-02-12 90 views
1

我有一个名称字段,我想验证,所以第一个字符必须是字母的名称,并允许后面的空格和破折号。我有这个,但它会允许“ - ”作为第一个字符。preg_match字符串必须以字母字符开头

preg_match("/^([a-z -])+$/i", $str) 

感谢

回答

1

的针对性则是更好的选择。但你也可以使用一个断言:

preg_match("/^(?![- ])([a-z -])+$/i", $str) 

(?!..)可以从第一个存在的排除字符。你也可以使用肯定的断言,如(?=\w)

+0

我认为lookbehind断言分别是`(?<!)`和`(?<=)`。 – BoltClock 2011-02-12 21:36:37

1
preg_match("/^[a-z][a-z -]+$/i", $str) 
相关问题