我们在《全链入口的参数检测》一文里面介绍了怎么在全链的入口处对参数进行检查的方法,并且以“require”作为例子,事实上Jsnpp框架对参数的检查不止“require”一个,这篇我们来介绍更多的检查内容。
下面列出Jsnpp框架里面可用的检查方法:
accepted:是否为为 yes, on, 或是 1;
alpha:是否为全字母;
alphanum:是否为字母和数字;
alphadash:是否为字母和连接线以及下划线;
alphanumunder:是否为字母数字和下划线,并且字母开头;
alphanumhyphen:是否为字母数字和连接线,并且字母开头;
boolean(或者bool):是否为布尔值;
captcha:是否为验证码;
date:是否为日期;
email:是否为电子邮件;
float:是否为浮点数;
idcard:是否身份证格式;
integer(或者int):是否整数;
ip:是否ip;
macaddr:是否有效的MAC地址;
mobile:是否手机号;
number:是否数字;
positiveinteger:是否正整数;
regex:是否满足正则条件;
require:必须有值;
url:是否网址;
zipcode:是否邮编。
以上检查方法除了“regex”之外,格式跟“require”一样,例如我们都可以像“require”一样写代码如下:
...->check($param['temperature'], 'number', '必须是数字')...
观察上面的代码,我们发现只需要把“check”的第二个参数更换成对应的检查字符串就可以了。
下面看一个“regex”的例子:
...->check($param['name'], 'regex | .{8,}', '不能少于8个字符')...
我们看到“regex”跟其他检测的区别仅仅在于其后有一条竖线,竖线后面是正则表达式。在上面这个例子里面我们要求输入的参数name必须满足不少于8个字符的条件。
当有多个参数需要检查,我们可以直接把“check”连接起来就可以了,如下面的代码:
...->check($param['temperature'], 'number', '必须是数字')->check($param['name'], 'regex | .{8,}', '不能少于8个字符')...上面的代码就是把前面介绍的两处检查连接起来写,有更多的参数需要检查,那么就写更多的check语句即可。