验证表单输入:数字

问题
希望确保在一个表单输入框中输入了一个数。例如,不希望一个人说他的年龄oldenough(足够老)或者是tangerine(桔红色),而应当提供类似13或56的值。
解决方案
如果需要一个整数,可以使用FILTER_VALIDATE_INT过滤器:
用FILTER_VALIDATE_INT验证数字
$age = filter_input(INPUT_POST, 'age', FILTER_VALIDATE_INT);
if($age === false){
print 'Submitted age is invalid.';
}
如果需要一个小数,可以使用FILTER_VALIDATE_FLOAT过滤器
用FILTER_VALIDATE_FLOAT验证数字
$price = filter_input(INPUT_POST, 'age', FILTER_VALIDATE_FLOAT);
if($price === false){
print 'Submitted price is invalid.';
}

使用正则表达式,这在一些验证中也可能很有用
用正则表达式验证数字
// 这个模式匹配一个可选的正负号,
// 然后至少有一位
if(! preg_match('/^-?\d+$/',$_POST['rating'])){
print 'Your rating must be an integer.';
}

//这个模式匹配一个可选的正负号,然后是小数号前的数位(可选),一个可选的小数点,然后至少有一位
if(! preg_match('/^-?\d*.?\d+$/',$_POST['rating'])){
print 'Your rating must be a number.';
}

posted @   kksllss  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示