在[0-9]+
url模式中使用d+
和django
有什么区别吗?有安全性差异吗?
Django使用pythons re
模块,并从its documentation:
\d
[...]匹配任何Unicode十进制数字(即Unicode字符类别[Nd]中的任何字符)。这包括[0-9],还有许多其他数字字符。如果使用ASCII标志只匹配[0-9](但是该标志影响整个正则表达式,因此在这种情况下使用显式[0-9]可能是更好的选择)。
也就是说,这也符合例如阿拉伯数字。如果你想要,那么使用\d
,如果没有,那么使用[0-9]