Php _数值函数是否未验证加号(+;)符号
我正在尝试验证用户输入的项目编号。如果加号放在第一位,则is_numeric函数不会给出错误,但如果将加号放在其他任何位置,则会给出错误 案例1:Php _数值函数是否未验证加号(+;)符号,php,regex,preg-match,Php,Regex,Preg Match,我正在尝试验证用户输入的项目编号。如果加号放在第一位,则is_numeric函数不会给出错误,但如果将加号放在其他任何位置,则会给出错误 案例1: $ItemNumber = '+123456789'; if(!is_numeric($ItemNumber)) { echo 'Sorry! Invalid Item No. given.'; } else { echo 'Success'; } //Output : Success $ItemNumber = '12345678
$ItemNumber = '+123456789';
if(!is_numeric($ItemNumber))
{
echo 'Sorry! Invalid Item No. given.';
}
else
{
echo 'Success';
}
//Output : Success
$ItemNumber = '123456789+';
if(!is_numeric($ItemNumber))
{
echo 'Sorry! Invalid Item No. given.';
}
else
{
echo 'Success';
}
//Output : Sorry! Invalid Item No. given.
案例2:
$ItemNumber = '+123456789';
if(!is_numeric($ItemNumber))
{
echo 'Sorry! Invalid Item No. given.';
}
else
{
echo 'Success';
}
//Output : Success
$ItemNumber = '123456789+';
if(!is_numeric($ItemNumber))
{
echo 'Sorry! Invalid Item No. given.';
}
else
{
echo 'Success';
}
//Output : Sorry! Invalid Item No. given.
'+123456789'
是有效的数字字符串。请检查手册,但'123456789+'
不是使用php函数获取有效数字
$ItemNumber = '+123456789';
echo ctype_digit($ItemNumber);//false
$ItemNumber = '123456789+';
echo ctype_digit($ItemNumber);//false
$ItemNumber = '123456789';
echo ctype_digit($ItemNumber);//true
试试这个
<?php
$value = "+12345655539997";
(or)
$value = "+12345655539997+";
(or)
$value = "12345655539997+";
if(!preg_match('/^[0-9+]+$/', $value) ) {
echo 'Please enter a valid number';
}else{
echo "valid";
}
这会给出数字字符串值
,因为+123456789
有效的数字字符串,但123456789+
无效。
如果var
是数字或数字字符串,则is\u numeric
返回TRUE
,否则返回FALSE
按计划工作。我不认为项目编号会有符号。简单的解决办法是去掉字符串末尾的加号<代码>$ItemNumber=rtrim($ItemNumber,“+”)代码>@NextLocal,但这将破坏验证的目的。。。。