所以,我有一个文本字段,只能包含字母,数字,连字符,点和下划线。我想使用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]-_./'))
)
));
答案 0 :(得分:12)
您的正则表达式匹配包含字符串的字符串,该字符串依次为小写字母,大写字母,数字,短划线,下划线和任何其他字符。你需要这个:
/^[\w.-]*$/
^
和$
将匹配项固定在字符串的开头和结尾。
\w
匹配字母,数字和下划线;与点和短划线一起形成一个字符类([...]
),重复零次或多次(*
)。
答案 1 :(得分:0)
怎么样:
/[a-zA-Z]*|\d*|-*|\.*|_*/