判断输入内容的合法性

前言

最近在浦发项目上同事在判断内容时提了写疑问。我给他做了些讲解。这里分享一下。

当我们通过 input 方法或者网页提交的 form 获取到用户的输入时,往往都要对输入值做一番验证,避免因为手滑、理解错误或者恶意攻击向你的程序发送了怎样的内容。

Python 的字符串为我们提供了一些简单的验证方法:

假设 s 是一个字符串(str)类型的变量:

s.isalnum()

是否所有字符都是数字或者字母

s.isalpha()

是否所有字符都是字母

s.isascii()

是否所有字符都是 ASCII 字符

s.isdecimal()

是否为十进制整数(可以被 int 转换)

s.isdigit()

是否所有字符都是阿拉伯数字

s.isnumeric()

是否所有字符都是数字(中文数字也可以)

s.islower()

是否所有字符都是小写

s.isupper()

是否所有字符都是大写

s.istitle()

是否所有单词都是首字母大写(像标题一样)

s.isspace()

是否所有字符都是空白字符、\t、\n、\r

s.identifier()

是否为 python 标识符,比如 def、class 等保留字

这些可以用来应付很多常用的字符验证。如果更复杂的需求,那就要考虑用正则表达式来解决了。