1
我正在使用Propel的验证行为来验证架构内保存的数据。我有一个自动验证器,它使用预保存钩子来验证保存中的数据。Propel正则表达式验证问题
有问题的模式如下:
<behavior name = "validate">
<parameter name = "username"
value = "{column: username, validator: Regex,
options: {pattern: "/^[a-zA-Z0-9_?]{1,20}$/D"}}"/>
<parameter name = "email" value = "{column: email, validator: Email}"/>
</behavior>
为username列的模式:
<column name="username" type="varchar" size="20" required="true" primaryString="true">
的电子邮件列中的验证工作正常,但是,对于用户名验证不是。预计会匹配使用字母,数字,下划线或问号的用户名,长度介于1到20个字符之间。在当前状态下,每个save()都会引发一个异常,包括有效的用户名。
但是,如果我将正则表达式更改为/^[a-zA-Z0-9_?]{1,20}/
(删除$和D),它允许包含无效用户名的所有内容。
相关的Propel文档可以找到here。