1.2.0+
nonebot.command.argfilter.validators提供几种常用的验证器。
这些验证器的工厂函数全都接受可选参数 message: Message_T | None
,用于在验证失败时向用户发送错误提示。使用这些的验证器时,必须先调用验证器的工厂函数,其返回结果才是真正的验证器,例如:
session.get('arg1', prompt='请输入 arg1:',
arg_filters=[extract_text, not_empty('输入不能为空')])
1
2
2
注意 extract_text
和 not_empty
使用上的区别。
not_empty(message=None)
def 说明
验证输入不为空。
参数
message
返回
fit_size(min_length=0, max_length=None, message=None)
def 说明
验证输入的长度(大小)在
min_length
到max_length
之间(包括两者)。输入和输出应符合
Sized
类型。参数
min_length
(int): 最小长度max_length
(int): 最大长度message
: 验证失败时的提示
返回
match_regex(pattern, message=None, *, flags=0, fullmatch=False)
def 说明
验证输入是否匹配正则表达式。
输入和输出应符合
str
类型。参数
pattern
(str): 正则表达式message
: 验证失败时的提示flags
: 传入re.compile()
的标志fullmatch
(bool): 是否使用完全匹配(re.fullmatch()
)
返回
ensure_true(bool_func, message=None)
def 说明
验证输入是否能使给定布尔函数返回
True
。参数
bool_func
((Any) -> bool): 接受输入、返回布尔值的函数message
: 验证失败时的提示
返回
between_inclusive(start=None, end=None, message=None)
def 说明
验证输入是否在
start
到end
之间(包括两者)。输入和输出应符合
Comparable
类型。参数
start
: 范围开始end
: 范围结束message
: 验证失败时的提示
返回