1
我有一个名称字段,我想验证,所以第一个字符必须是字母的名称,并允许后面的空格和破折号。我有这个,但它会允许“ - ”作为第一个字符。preg_match字符串必须以字母字符开头
preg_match("/^([a-z -])+$/i", $str)
感谢
我有一个名称字段,我想验证,所以第一个字符必须是字母的名称,并允许后面的空格和破折号。我有这个,但它会允许“ - ”作为第一个字符。preg_match字符串必须以字母字符开头
preg_match("/^([a-z -])+$/i", $str)
感谢
的针对性则是更好的选择。但你也可以使用一个断言:
preg_match("/^(?![- ])([a-z -])+$/i", $str)
的(?!..)
可以从第一个存在的排除字符。你也可以使用肯定的断言,如(?=\w)
。
preg_match("/^[a-z][a-z -]+$/i", $str)
我认为lookbehind断言分别是`(?<!)`和`(?<=)`。 – BoltClock 2011-02-12 21:36:37