【发布时间】:2020-08-31 04:21:53
【问题描述】:
我有这样的表情:
^[0-9()|&~ ]*$
它应该通过如下字符串:'1 & 2 & 3' 或 '(4&1)|(2&3)'
但是当我输入字符串时:'1 & 2iuasjhdawiudjsa',它会传递这个字符串。然后我得到一个错误:“名称'Trueiuasjhdawiudjsa'未定义”。
怎么了?为什么 validators.RegexValidator 不会引发异常?
请帮忙!
在第三个验证器中失败。如果我删除了第 3 个验证器,那么 RegexValidator 会引发错误,这是应该的。
expression = models.CharField(
blank=True, max_length=225,
validators=[validators.RegexValidator('^[0-9()|&~ ]*$'),
validate_logical_expression,
check_logic_operation_positions] # fails here, when try to
# check logic
]
)
【问题讨论】:
-
Your regex does not match你提到的字符串
-
@Victor Stribizev,所以这是一个问题:正则表达式不匹配,但 RegexValidator 不返回错误,因此,程序在尝试通过第二个验证器处理字符串时失败:
-
所以,问题不在于正则表达式,而在于你如何使用它。
-
@WiktorStribiżew,我已经编辑了这个问题。你能看出问题吗?
-
向我们展示一个使用示例(如何保存数据)