python - wtforms.validators中的Regexp验证函数的flags参数有什么作用?
大家讲道理
大家讲道理 2017-04-17 17:59:08
0
2
738

wtforms的文档中是这样解释的:

表示没有看懂,请各位大神指点。主要疑惑在:

  1. for example re.IGNORECASE是什么意思,难道这个参数还等代表re模块中的其它常量?

  2. Ignored if regex is not a string.我觉得regex这个参数只能是string类型吧?还会有其它的情况嘛?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回覆(2)
阿神

沒用過這個庫 不過按照自己對re的理解來回答, 這應該是封裝了一些正則的功能吧

1.參考 https://docs.python.org/2/library/re.html#re.compile
flags:查看特定的flag常數

re.DEBUG
re.I
re.IGNORECASE
re.L
re.LOCALE
re.M
re.MULTILINE
re.S
re.DOTALL
re.U
re.UNICODE
re.X
re.VERBOSE

2.他的意思是 regex傳入的值類型不是string 忽略掉


update:

庫下載下來看源碼一目了然了:

site-packages/wtforms/validators.py 264行

def __init__(self, regex, flags=0, message=None):
    if isinstance(regex, string_types):
        regex = re.compile(regex, flags)
    self.regex = regex
    self.message = message

先判斷傳入的regx是不是string,然後compile

Ty80

不知道為什麼不能修改問題,那麼再加一個自己的回答好了,再綜合一下採納的答案。

  1. flags参数在re模組的文檔中是這樣描述的:

Values can be any of the following variables, combined using bitwise OR (the | operator).

這些常數可以使用位元或運算子來同時使用,預設值為0,表示不使用任何標誌常數,for example也就說的通了。

  1. 正如原始碼所示,如果regex不是字串,那麼也就沒有編譯的步驟了,那麼這些參數自然會被忽略。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板