Zend_Validate_Regex -只允许字母、数字和字符-_


Zend_Validate_Regex - allow only letters, numbers, and characters -_

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

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

这是我的text元素:

$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]-_./'))
    )
));

您的regex匹配的字符串包含一个小写字母、一个大写字母、一个数字、一个破折号、一个下划线和任何其他字符,按此顺序。你需要这个:

/^['w.-]*$/

^$将匹配锚定在字符串的开始和结束处。

'w匹配字母、数字和下划线;它们与点和破折号一起构成一个字符类([...]),该字符类重复0次或多次(*)。

这个怎么样:

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