Luc*_*emy 20 php function digit
可能重复:
检查变量是否为自然数
刚刚遇到我需要清理输入并使用PHP删除所有非数字字符的地方.考虑自己制作一个功能,但首先想要检查可能的内置功能,所以我不必花费额外的时间重新发明轮子.
Spu*_*ley 31
pareseInt()在PHP中没有直接的等价物,因为PHP没有NaN数据类型.如果无法解析该值,parseInt()则会产生NaN.
此外,parseInt()还有radix参数,这些参数都没有给你提供.
但是,如果您想要做的就是将字符串转换为整数,那么有几个选项:
$int = (int)$string;
$int = intval($string);
$int = settype($string,'integer');
这三个人的工作方式大致相同.可能有一些边缘情况intval()与其他两种情况不同,但一般来说,它们会将字符串转换为int.如果没有NaN,0如果字符串是非数字且无法解析,则它们都输出(零).但这应该足以满足大多数数据库的卫生目的.
如果你真的想要一个NaN错误,你得到的最接近的是null.你可以使用filter_var():
$value = filter_var(FALSE, FILTER_VALIDATE_INT, FILTER_NULL_ON_FAILURE);
如果您只想检查字符串是否为数字,则该is_numeric()函数可以执行以下操作:
$bool = is_numeric($string);
但是,对于小数和科学记数法,它返回true,因此对于大多数情况可能不是完美的.ctype_digit()如果字符串仅由数字组成,则更好的选项返回true:
$bool = ctype_digit($string);
如果不适合这种情况,总会有正则表达式选项,使用preg_match()或preg_replace(),但这些对于这种情况肯定是过度杀伤.
GBD*_*GBD 30
您可以使用如下的正则表达式
$int = (int) preg_replace('/\D/', '', $strNonNumeric);
要么
$int = (int) preg_replace('/[^0-9]/', '', $strNonNumeric);
您可以使用:
$string = "90"; //string
$myInt = (int) $string; //parse to int
| 归档时间: | 
 | 
| 查看次数: | 53955 次 | 
| 最近记录: |