我正在尝试从用户输入验证商品编号。如果加号符号放在第一位,那么is_numeric函数不会给出错误,但是在将+符号放在其他任何地方时它会给出错误。
案例1:
$ItemNumber = '+123456789';
if(!is_numeric($ItemNumber))
{
echo 'Sorry! Invalid Item No. given.';
}
else
{
echo 'Success';
}
//Output : Success
案例2:
$ItemNumber = '123456789+';
if(!is_numeric($ItemNumber))
{
echo 'Sorry! Invalid Item No. given.';
}
else
{
echo 'Success';
}
//Output : Sorry! Invalid Item No. given.
答案 0 :(得分:2)
if ( callback ) callback();
是有效的数字字符串。请查看手册is_numeric,但'+123456789'
不是
答案 1 :(得分:0)
使用ctype_digit php函数获取有效数字
$ItemNumber = '+123456789';
echo ctype_digit($ItemNumber);//false
$ItemNumber = '123456789+';
echo ctype_digit($ItemNumber);//false
$ItemNumber = '123456789';
echo ctype_digit($ItemNumber);//true
答案 2 :(得分:0)
试试这个..
<?php
$value = "+12345655539997";
(or)
$value = "+12345655539997+";
(or)
$value = "12345655539997+";
if(!preg_match('/^[0-9+]+$/', $value) ) {
echo 'Please enter a valid number';
}else{
echo "valid";
}
答案 3 :(得分:0)
$ItemNumber = '+123456789';
if(is_numeric($ItemNumber)){
echo 'Numeric string value.';
}else{
echo 'fail';
}
提供Numeric string value
因为+123456789
有效的数字字符串,但123456789+
不是。
如果is_numeric
是数字或数字字符串,则TRUE
会返回var
,否则返回FALSE
。