入口参数检查概述
发布时间: 2021年6月24日 下午12:07 作者: Jsnpp 访问量: 894

我们在《全链入口的参数检测》一文里面介绍了怎么在全链的入口处对参数进行检查的方法,并且以“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语句即可。
出错
提交成功!
评论已经提交。
我们已经收到您的反馈!
/index/like.html
/index/dislike.html
/index/postpassword.html
Jsnpp
自豪地采用 Jpwrt