Zend_Validate_Regex - 仅允许字母,数字和字符-_

时间:2011-09-27 20:23:33

标签: php regex zend-framework

所以,我有一个文本字段,只能包含字母,数字,连字符,点和下划线。我想使用Zend_Validate_Regex验证它,但这种模式不起作用。为什么呢?

/[a-z][A-Z][0-9]-_./

这是我的文字元素:

$titleSlug = new Zend_Form_Element_Text('title_slug', array(
    'label' => 'Title Slug',
    'required' => FALSE,
    'filters' => array(
        'StringTrim',
        'Null'
    ),
    'validators' => array(
        array('StringLength', FALSE, array(3, 255)),
        array('Regex', FALSE, array('pattern' => '/[a-z][A-Z][0-9]-_./'))
    )
));

2 个答案:

答案 0 :(得分:12)

您的正则表达式匹配包含字符串的字符串,该字符串依次为小写字母,大写字母,数字,短划线,下划线和任何其他字符。你需要这个:

/^[\w.-]*$/

^$将匹配项固定在字符串的开头和结尾。

\w匹配字母,数字和下划线;与点和短划线一起形成一个字符类([...]),重复零次或多次(*)。

答案 1 :(得分:0)

怎么样:

 /[a-zA-Z]*|\d*|-*|\.*|_*/