Php _数值函数是否未验证加号(+;)符号

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

我正在尝试验证用户输入的项目编号。如果加号放在第一位,则is_numeric函数不会给出错误,但如果将加号放在其他任何位置,则会给出错误

案例1:

$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,但这将破坏验证的目的。。。。