所以,我有一个只能包含字母、数字、连字符、点和下划线的文本字段。我想使用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*|-*|'.*|_*/